Loading fs/9p/vfs_super.c +4 −3 Original line number Diff line number Diff line Loading @@ -253,10 +253,11 @@ static int v9fs_show_options(struct seq_file *m, struct vfsmount *mnt) } static void v9fs_umount_begin(struct super_block *sb) v9fs_umount_begin(struct vfsmount *vfsmnt, int flags) { struct v9fs_session_info *v9ses = sb->s_fs_info; struct v9fs_session_info *v9ses = vfsmnt->mnt_sb->s_fs_info; if (flags & MNT_FORCE) v9fs_session_cancel(v9ses); } Loading fs/cifs/cifsfs.c +4 −2 Original line number Diff line number Diff line Loading @@ -402,12 +402,14 @@ static struct quotactl_ops cifs_quotactl_ops = { #endif #ifdef CONFIG_CIFS_EXPERIMENTAL static void cifs_umount_begin(struct super_block * sblock) static void cifs_umount_begin(struct vfsmount * vfsmnt, int flags) { struct cifs_sb_info *cifs_sb; struct cifsTconInfo * tcon; cifs_sb = CIFS_SB(sblock); if (!(flags & MNT_FORCE)) return; cifs_sb = CIFS_SB(vfsmnt->mnt_sb); if(cifs_sb == NULL) return; Loading fs/fuse/inode.c +3 −2 Original line number Diff line number Diff line Loading @@ -195,9 +195,10 @@ struct inode *fuse_iget(struct super_block *sb, unsigned long nodeid, return inode; } static void fuse_umount_begin(struct super_block *sb) static void fuse_umount_begin(struct vfsmount *vfsmnt, int flags) { fuse_abort_conn(get_fuse_conn_super(sb)); if (flags & MNT_FORCE) fuse_abort_conn(get_fuse_conn_super(vfsmnt->mnt_sb)); } static void fuse_put_super(struct super_block *sb) Loading fs/namespace.c +2 −2 Original line number Diff line number Diff line Loading @@ -576,8 +576,8 @@ static int do_umount(struct vfsmount *mnt, int flags) */ lock_kernel(); if ((flags & MNT_FORCE) && sb->s_op->umount_begin) sb->s_op->umount_begin(sb); if (sb->s_op->umount_begin) sb->s_op->umount_begin(mnt, flags); unlock_kernel(); /* Loading fs/nfs/inode.c +9 −5 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ static struct inode *nfs_alloc_inode(struct super_block *sb); static void nfs_destroy_inode(struct inode *); static int nfs_write_inode(struct inode *,int); static void nfs_clear_inode(struct inode *); static void nfs_umount_begin(struct super_block *); static void nfs_umount_begin(struct vfsmount *, int); static int nfs_statfs(struct super_block *, struct kstatfs *); static int nfs_show_options(struct seq_file *, struct vfsmount *); static int nfs_show_stats(struct seq_file *, struct vfsmount *); Loading Loading @@ -162,15 +162,19 @@ nfs_clear_inode(struct inode *inode) BUG_ON(atomic_read(&nfsi->data_updates) != 0); } void nfs_umount_begin(struct super_block *sb) static void nfs_umount_begin(struct vfsmount *vfsmnt, int flags) { struct rpc_clnt *rpc = NFS_SB(sb)->client; struct nfs_server *server; struct rpc_clnt *rpc; if (!(flags & MNT_FORCE)) return; /* -EIO all pending I/O */ server = NFS_SB(vfsmnt->mnt_sb); rpc = server->client; if (!IS_ERR(rpc)) rpc_killall_tasks(rpc); rpc = NFS_SB(sb)->client_acl; rpc = server->client_acl; if (!IS_ERR(rpc)) rpc_killall_tasks(rpc); } Loading Loading
fs/9p/vfs_super.c +4 −3 Original line number Diff line number Diff line Loading @@ -253,10 +253,11 @@ static int v9fs_show_options(struct seq_file *m, struct vfsmount *mnt) } static void v9fs_umount_begin(struct super_block *sb) v9fs_umount_begin(struct vfsmount *vfsmnt, int flags) { struct v9fs_session_info *v9ses = sb->s_fs_info; struct v9fs_session_info *v9ses = vfsmnt->mnt_sb->s_fs_info; if (flags & MNT_FORCE) v9fs_session_cancel(v9ses); } Loading
fs/cifs/cifsfs.c +4 −2 Original line number Diff line number Diff line Loading @@ -402,12 +402,14 @@ static struct quotactl_ops cifs_quotactl_ops = { #endif #ifdef CONFIG_CIFS_EXPERIMENTAL static void cifs_umount_begin(struct super_block * sblock) static void cifs_umount_begin(struct vfsmount * vfsmnt, int flags) { struct cifs_sb_info *cifs_sb; struct cifsTconInfo * tcon; cifs_sb = CIFS_SB(sblock); if (!(flags & MNT_FORCE)) return; cifs_sb = CIFS_SB(vfsmnt->mnt_sb); if(cifs_sb == NULL) return; Loading
fs/fuse/inode.c +3 −2 Original line number Diff line number Diff line Loading @@ -195,9 +195,10 @@ struct inode *fuse_iget(struct super_block *sb, unsigned long nodeid, return inode; } static void fuse_umount_begin(struct super_block *sb) static void fuse_umount_begin(struct vfsmount *vfsmnt, int flags) { fuse_abort_conn(get_fuse_conn_super(sb)); if (flags & MNT_FORCE) fuse_abort_conn(get_fuse_conn_super(vfsmnt->mnt_sb)); } static void fuse_put_super(struct super_block *sb) Loading
fs/namespace.c +2 −2 Original line number Diff line number Diff line Loading @@ -576,8 +576,8 @@ static int do_umount(struct vfsmount *mnt, int flags) */ lock_kernel(); if ((flags & MNT_FORCE) && sb->s_op->umount_begin) sb->s_op->umount_begin(sb); if (sb->s_op->umount_begin) sb->s_op->umount_begin(mnt, flags); unlock_kernel(); /* Loading
fs/nfs/inode.c +9 −5 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ static struct inode *nfs_alloc_inode(struct super_block *sb); static void nfs_destroy_inode(struct inode *); static int nfs_write_inode(struct inode *,int); static void nfs_clear_inode(struct inode *); static void nfs_umount_begin(struct super_block *); static void nfs_umount_begin(struct vfsmount *, int); static int nfs_statfs(struct super_block *, struct kstatfs *); static int nfs_show_options(struct seq_file *, struct vfsmount *); static int nfs_show_stats(struct seq_file *, struct vfsmount *); Loading Loading @@ -162,15 +162,19 @@ nfs_clear_inode(struct inode *inode) BUG_ON(atomic_read(&nfsi->data_updates) != 0); } void nfs_umount_begin(struct super_block *sb) static void nfs_umount_begin(struct vfsmount *vfsmnt, int flags) { struct rpc_clnt *rpc = NFS_SB(sb)->client; struct nfs_server *server; struct rpc_clnt *rpc; if (!(flags & MNT_FORCE)) return; /* -EIO all pending I/O */ server = NFS_SB(vfsmnt->mnt_sb); rpc = server->client; if (!IS_ERR(rpc)) rpc_killall_tasks(rpc); rpc = NFS_SB(sb)->client_acl; rpc = server->client_acl; if (!IS_ERR(rpc)) rpc_killall_tasks(rpc); } Loading