diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-12-20 09:35:05 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-12-20 09:35:05 -0800 |
commit | fc7e13104f823d1ea9c1f4dd7531c14b0c1e6e7e (patch) | |
tree | 489070a6f39a062c7f51cab3cb4c976810eb7556 /fs/nfs/file.c | |
parent | 33c37c06f8066342764bd1568c9f3524efe889a5 (diff) | |
parent | 9b5b1f5bf9dcdb6f23abf65977a675eb4deba3c0 (diff) | |
download | linux-fc7e13104f823d1ea9c1f4dd7531c14b0c1e6e7e.tar.gz linux-fc7e13104f823d1ea9c1f4dd7531c14b0c1e6e7e.tar.xz |
Merge branch 'fixes' of git://git.linux-nfs.org/pub/linux/nfs-2.6
Diffstat (limited to 'fs/nfs/file.c')
-rw-r--r-- | fs/nfs/file.c | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 57d3e77d97ee..eb5cd4c3bbfd 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c @@ -433,11 +433,7 @@ static int do_unlk(struct file *filp, int cmd, struct file_lock *fl) * Flush all pending writes before doing anything * with locks.. */ - filemap_fdatawrite(filp->f_mapping); - down(&inode->i_sem); - nfs_wb_all(inode); - up(&inode->i_sem); - filemap_fdatawait(filp->f_mapping); + nfs_sync_mapping(filp->f_mapping); /* NOTE: special case * If we're signalled while cleaning up locks on process exit, we @@ -465,15 +461,8 @@ static int do_setlk(struct file *filp, int cmd, struct file_lock *fl) * Flush all pending writes before doing anything * with locks.. */ - status = filemap_fdatawrite(filp->f_mapping); - if (status == 0) { - down(&inode->i_sem); - status = nfs_wb_all(inode); - up(&inode->i_sem); - if (status == 0) - status = filemap_fdatawait(filp->f_mapping); - } - if (status < 0) + status = nfs_sync_mapping(filp->f_mapping); + if (status != 0) goto out; lock_kernel(); @@ -497,11 +486,7 @@ static int do_setlk(struct file *filp, int cmd, struct file_lock *fl) * Make sure we clear the cache whenever we try to get the lock. * This makes locking act as a cache coherency point. */ - filemap_fdatawrite(filp->f_mapping); - down(&inode->i_sem); - nfs_wb_all(inode); /* we may have slept */ - up(&inode->i_sem); - filemap_fdatawait(filp->f_mapping); + nfs_sync_mapping(filp->f_mapping); nfs_zap_caches(inode); out: rpc_clnt_sigunmask(NFS_CLIENT(inode), &oldset); |