diff options
Diffstat (limited to 'fs/nfs')
| -rw-r--r-- | fs/nfs/inode.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 9ff039f9a836..fda2b4966179 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
| @@ -63,7 +63,7 @@ static struct inode *nfs_alloc_inode(struct super_block *sb); | |||
| 63 | static void nfs_destroy_inode(struct inode *); | 63 | static void nfs_destroy_inode(struct inode *); |
| 64 | static int nfs_write_inode(struct inode *,int); | 64 | static int nfs_write_inode(struct inode *,int); |
| 65 | static void nfs_clear_inode(struct inode *); | 65 | static void nfs_clear_inode(struct inode *); |
| 66 | static void nfs_umount_begin(struct super_block *); | 66 | static void nfs_umount_begin(struct vfsmount *, int); |
| 67 | static int nfs_statfs(struct super_block *, struct kstatfs *); | 67 | static int nfs_statfs(struct super_block *, struct kstatfs *); |
| 68 | static int nfs_show_options(struct seq_file *, struct vfsmount *); | 68 | static int nfs_show_options(struct seq_file *, struct vfsmount *); |
| 69 | static int nfs_show_stats(struct seq_file *, struct vfsmount *); | 69 | static int nfs_show_stats(struct seq_file *, struct vfsmount *); |
| @@ -162,15 +162,19 @@ nfs_clear_inode(struct inode *inode) | |||
| 162 | BUG_ON(atomic_read(&nfsi->data_updates) != 0); | 162 | BUG_ON(atomic_read(&nfsi->data_updates) != 0); |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | void | 165 | static void nfs_umount_begin(struct vfsmount *vfsmnt, int flags) |
| 166 | nfs_umount_begin(struct super_block *sb) | ||
| 167 | { | 166 | { |
| 168 | struct rpc_clnt *rpc = NFS_SB(sb)->client; | 167 | struct nfs_server *server; |
| 168 | struct rpc_clnt *rpc; | ||
| 169 | 169 | ||
| 170 | if (!(flags & MNT_FORCE)) | ||
| 171 | return; | ||
| 170 | /* -EIO all pending I/O */ | 172 | /* -EIO all pending I/O */ |
| 173 | server = NFS_SB(vfsmnt->mnt_sb); | ||
| 174 | rpc = server->client; | ||
| 171 | if (!IS_ERR(rpc)) | 175 | if (!IS_ERR(rpc)) |
| 172 | rpc_killall_tasks(rpc); | 176 | rpc_killall_tasks(rpc); |
| 173 | rpc = NFS_SB(sb)->client_acl; | 177 | rpc = server->client_acl; |
| 174 | if (!IS_ERR(rpc)) | 178 | if (!IS_ERR(rpc)) |
| 175 | rpc_killall_tasks(rpc); | 179 | rpc_killall_tasks(rpc); |
| 176 | } | 180 | } |
