浏览代码

NFS: Re-enable forced umounts

They disappeared some time around 2.6.18.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Trond Myklebust 18 年之前
父节点
当前提交
fc6ae3cf48
共有 1 个文件被更改,包括 13 次插入0 次删除
  1. 13 0
      fs/nfs/super.c

+ 13 - 0
fs/nfs/super.c

@@ -430,7 +430,20 @@ static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt)
  */
  */
 static void nfs_umount_begin(struct vfsmount *vfsmnt, int flags)
 static void nfs_umount_begin(struct vfsmount *vfsmnt, int flags)
 {
 {
+	struct nfs_server *server = NFS_SB(vfsmnt->mnt_sb);
+	struct rpc_clnt *rpc;
+
 	shrink_submounts(vfsmnt, &nfs_automount_list);
 	shrink_submounts(vfsmnt, &nfs_automount_list);
+
+	if (!(flags & MNT_FORCE))
+		return;
+	/* -EIO all pending I/O */
+	rpc = server->client_acl;
+	if (!IS_ERR(rpc))
+		rpc_killall_tasks(rpc);
+	rpc = server->client;
+	if (!IS_ERR(rpc))
+		rpc_killall_tasks(rpc);
 }
 }
 
 
 /*
 /*