Messages in this thread Patch in this message | | | Date | Wed, 6 Sep 2006 15:56:59 -0700 | From | Greg KH <> | Subject | [patch 21/37] fcntl(F_SETSIG) fix |
| |
-stable review patch. If anyone has any objections, please let us know.
------------------ From: Trond Myklebust <trond.myklebust@fys.uio.no>
[PATCH] fcntl(F_SETSIG) fix
fcntl(F_SETSIG) no longer works on leases because lease_release_private_callback() gets called as the lease is copied in order to initialise it.
The problem is that lease_alloc() performs an unnecessary initialisation, which sets the lease_manager_ops. Avoid the problem by allocating the target lease structure using locks_alloc_lock().
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- fs/locks.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
--- linux-2.6.17.11.orig/fs/locks.c +++ linux-2.6.17.11/fs/locks.c @@ -1389,8 +1389,9 @@ static int __setlease(struct file *filp, if (!leases_enable) goto out; - error = lease_alloc(filp, arg, &fl); - if (error) + error = -ENOMEM; + fl = locks_alloc_lock(); + if (fl == NULL) goto out; locks_copy_lock(fl, lease); @@ -1398,6 +1399,7 @@ static int __setlease(struct file *filp, locks_insert_lock(before, fl); *flp = fl; + error = 0; out: return error; } -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |