diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-03-20 13:44:48 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-03-20 13:44:48 -0500 |
commit | a9a801787a761616589a6526d7a29c13f4deb3d8 (patch) | |
tree | 73754598e8c65cf18f0a96ca3c32433dcb34cbe7 /fs | |
parent | 03f28e3a2059fc466761d872122f30acb7be61ae (diff) |
NFS, NLM: Allow blocking locks to respect signals
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/nfs/file.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 6bcbc4d676c4..5263b2864a44 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c | |||
@@ -443,10 +443,8 @@ static int do_vfs_lock(struct file *file, struct file_lock *fl) | |||
443 | static int do_unlk(struct file *filp, int cmd, struct file_lock *fl) | 443 | static int do_unlk(struct file *filp, int cmd, struct file_lock *fl) |
444 | { | 444 | { |
445 | struct inode *inode = filp->f_mapping->host; | 445 | struct inode *inode = filp->f_mapping->host; |
446 | sigset_t oldset; | ||
447 | int status; | 446 | int status; |
448 | 447 | ||
449 | rpc_clnt_sigmask(NFS_CLIENT(inode), &oldset); | ||
450 | /* | 448 | /* |
451 | * Flush all pending writes before doing anything | 449 | * Flush all pending writes before doing anything |
452 | * with locks.. | 450 | * with locks.. |
@@ -464,17 +462,14 @@ static int do_unlk(struct file *filp, int cmd, struct file_lock *fl) | |||
464 | else | 462 | else |
465 | status = do_vfs_lock(filp, fl); | 463 | status = do_vfs_lock(filp, fl); |
466 | unlock_kernel(); | 464 | unlock_kernel(); |
467 | rpc_clnt_sigunmask(NFS_CLIENT(inode), &oldset); | ||
468 | return status; | 465 | return status; |
469 | } | 466 | } |
470 | 467 | ||
471 | static int do_setlk(struct file *filp, int cmd, struct file_lock *fl) | 468 | static int do_setlk(struct file *filp, int cmd, struct file_lock *fl) |
472 | { | 469 | { |
473 | struct inode *inode = filp->f_mapping->host; | 470 | struct inode *inode = filp->f_mapping->host; |
474 | sigset_t oldset; | ||
475 | int status; | 471 | int status; |
476 | 472 | ||
477 | rpc_clnt_sigmask(NFS_CLIENT(inode), &oldset); | ||
478 | /* | 473 | /* |
479 | * Flush all pending writes before doing anything | 474 | * Flush all pending writes before doing anything |
480 | * with locks.. | 475 | * with locks.. |
@@ -507,7 +502,6 @@ static int do_setlk(struct file *filp, int cmd, struct file_lock *fl) | |||
507 | nfs_sync_mapping(filp->f_mapping); | 502 | nfs_sync_mapping(filp->f_mapping); |
508 | nfs_zap_caches(inode); | 503 | nfs_zap_caches(inode); |
509 | out: | 504 | out: |
510 | rpc_clnt_sigunmask(NFS_CLIENT(inode), &oldset); | ||
511 | return status; | 505 | return status; |
512 | } | 506 | } |
513 | 507 | ||