diff --git a/[refs] b/[refs] index 34ce14f0ef35..2c2f2f3db672 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8f96c95680bfe66ff00c91859d4c73edf539b854 +refs/heads/master: 7eaae2828dadae3abde7f77734c874d4b74b313a diff --git a/trunk/fs/locks.c b/trunk/fs/locks.c index a0bc03495bd4..29fa5da6c117 100644 --- a/trunk/fs/locks.c +++ b/trunk/fs/locks.c @@ -1276,7 +1276,7 @@ int fcntl_getlease(struct file *filp) */ static int __setlease(struct file *filp, long arg, struct file_lock **flp) { - struct file_lock *fl, **before, **my_before = NULL, *lease = *flp; + struct file_lock *fl, **before, **my_before = NULL, *lease; struct dentry *dentry = filp->f_dentry; struct inode *inode = dentry->d_inode; int error, rdlease_count = 0, wrlease_count = 0; @@ -1287,6 +1287,8 @@ static int __setlease(struct file *filp, long arg, struct file_lock **flp) if (!flp || !(*flp) || !(*flp)->fl_lmops || !(*flp)->fl_lmops->fl_break) goto out; + lease = *flp; + error = -EAGAIN; if ((arg == F_RDLCK) && (atomic_read(&inode->i_writecount) > 0)) goto out;