]> err.no Git - linux-2.6/blobdiff - fs/locks.c
[PATCH] sparsemem memory model
[linux-2.6] / fs / locks.c
index 1792ce547af7b0b6517bd2779600f4dfe03514a5..a0bc03495bd44e23bfa89deb6c492ee2a9ccfcb8 100644 (file)
@@ -406,12 +406,12 @@ static void lease_release_private_callback(struct file_lock *fl)
        fl->fl_file->f_owner.signum = 0;
 }
 
-int lease_mylease_callback(struct file_lock *fl, struct file_lock *try)
+static int lease_mylease_callback(struct file_lock *fl, struct file_lock *try)
 {
        return fl->fl_file == try->fl_file;
 }
 
-struct lock_manager_operations lease_manager_ops = {
+static struct lock_manager_operations lease_manager_ops = {
        .fl_break = lease_break_callback,
        .fl_release_private = lease_release_private_callback,
        .fl_mylease = lease_mylease_callback,
@@ -1274,7 +1274,7 @@ int fcntl_getlease(struct file *filp)
  *
  *     Called with kernel lock held.
  */
-int __setlease(struct file *filp, long arg, struct file_lock **flp)
+static int __setlease(struct file *filp, long arg, struct file_lock **flp)
 {
        struct file_lock *fl, **before, **my_before = NULL, *lease = *flp;
        struct dentry *dentry = filp->f_dentry;
@@ -1548,6 +1548,8 @@ int fcntl_getlk(struct file *filp, struct flock __user *l)
 
        if (filp->f_op && filp->f_op->lock) {
                error = filp->f_op->lock(filp, F_GETLK, &file_lock);
+               if (file_lock.fl_ops && file_lock.fl_ops->fl_release_private)
+                       file_lock.fl_ops->fl_release_private(&file_lock);
                if (error < 0)
                        goto out;
                else
@@ -1690,6 +1692,8 @@ int fcntl_getlk64(struct file *filp, struct flock64 __user *l)
 
        if (filp->f_op && filp->f_op->lock) {
                error = filp->f_op->lock(filp, F_GETLK, &file_lock);
+               if (file_lock.fl_ops && file_lock.fl_ops->fl_release_private)
+                       file_lock.fl_ops->fl_release_private(&file_lock);
                if (error < 0)
                        goto out;
                else
@@ -1873,6 +1877,8 @@ void locks_remove_flock(struct file *filp)
                        .fl_end = OFFSET_MAX,
                };
                filp->f_op->flock(filp, F_SETLKW, &fl);
+               if (fl.fl_ops && fl.fl_ops->fl_release_private)
+                       fl.fl_ops->fl_release_private(&fl);
        }
 
        lock_kernel();