Commit a9a80178 authored by Trond Myklebust's avatar Trond Myklebust

NFS, NLM: Allow blocking locks to respect signals

Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 03f28e3a
...@@ -443,10 +443,8 @@ static int do_vfs_lock(struct file *file, struct file_lock *fl) ...@@ -443,10 +443,8 @@ static int do_vfs_lock(struct file *file, struct file_lock *fl)
static int do_unlk(struct file *filp, int cmd, struct file_lock *fl) static int do_unlk(struct file *filp, int cmd, struct file_lock *fl)
{ {
struct inode *inode = filp->f_mapping->host; struct inode *inode = filp->f_mapping->host;
sigset_t oldset;
int status; int status;
rpc_clnt_sigmask(NFS_CLIENT(inode), &oldset);
/* /*
* Flush all pending writes before doing anything * Flush all pending writes before doing anything
* with locks.. * with locks..
...@@ -464,17 +462,14 @@ static int do_unlk(struct file *filp, int cmd, struct file_lock *fl) ...@@ -464,17 +462,14 @@ static int do_unlk(struct file *filp, int cmd, struct file_lock *fl)
else else
status = do_vfs_lock(filp, fl); status = do_vfs_lock(filp, fl);
unlock_kernel(); unlock_kernel();
rpc_clnt_sigunmask(NFS_CLIENT(inode), &oldset);
return status; return status;
} }
static int do_setlk(struct file *filp, int cmd, struct file_lock *fl) static int do_setlk(struct file *filp, int cmd, struct file_lock *fl)
{ {
struct inode *inode = filp->f_mapping->host; struct inode *inode = filp->f_mapping->host;
sigset_t oldset;
int status; int status;
rpc_clnt_sigmask(NFS_CLIENT(inode), &oldset);
/* /*
* Flush all pending writes before doing anything * Flush all pending writes before doing anything
* with locks.. * with locks..
...@@ -507,7 +502,6 @@ static int do_setlk(struct file *filp, int cmd, struct file_lock *fl) ...@@ -507,7 +502,6 @@ static int do_setlk(struct file *filp, int cmd, struct file_lock *fl)
nfs_sync_mapping(filp->f_mapping); nfs_sync_mapping(filp->f_mapping);
nfs_zap_caches(inode); nfs_zap_caches(inode);
out: out:
rpc_clnt_sigunmask(NFS_CLIENT(inode), &oldset);
return status; return status;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment