Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42faad99 authored by Al Viro's avatar Al Viro
Browse files

[PATCH] restore sane ->umount_begin() API



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 78d31a3a
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -224,11 +224,10 @@ static int v9fs_show_options(struct seq_file *m, struct vfsmount *mnt)
}

static void
v9fs_umount_begin(struct vfsmount *vfsmnt, int flags)
v9fs_umount_begin(struct super_block *sb)
{
	struct v9fs_session_info *v9ses = vfsmnt->mnt_sb->s_fs_info;
	struct v9fs_session_info *v9ses = sb->s_fs_info;

	if (flags & MNT_FORCE)
	v9fs_session_cancel(v9ses);
}

+2 −5
Original line number Diff line number Diff line
@@ -466,14 +466,11 @@ static struct quotactl_ops cifs_quotactl_ops = {
};
#endif

static void cifs_umount_begin(struct vfsmount *vfsmnt, int flags)
static void cifs_umount_begin(struct super_block *sb)
{
	struct cifs_sb_info *cifs_sb;
	struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
	struct cifsTconInfo *tcon;

	if (!(flags & MNT_FORCE))
		return;
	cifs_sb = CIFS_SB(vfsmnt->mnt_sb);
	if (cifs_sb == NULL)
		return;

+2 −3
Original line number Diff line number Diff line
@@ -242,10 +242,9 @@ struct inode *fuse_iget(struct super_block *sb, unsigned long nodeid,
	return inode;
}

static void fuse_umount_begin(struct vfsmount *vfsmnt, int flags)
static void fuse_umount_begin(struct super_block *sb)
{
	if (flags & MNT_FORCE)
		fuse_abort_conn(get_fuse_conn_super(vfsmnt->mnt_sb));
	fuse_abort_conn(get_fuse_conn_super(sb));
}

static void fuse_send_destroy(struct fuse_conn *fc)
+5 −4
Original line number Diff line number Diff line
@@ -1061,10 +1061,11 @@ static int do_umount(struct vfsmount *mnt, int flags)
	 * about for the moment.
	 */

	if (flags & MNT_FORCE && sb->s_op->umount_begin) {
		lock_kernel();
	if (sb->s_op->umount_begin)
		sb->s_op->umount_begin(mnt, flags);
		sb->s_op->umount_begin(sb);
		unlock_kernel();
	}

	/*
	 * No sense to grab the lock for this test, but test itself looks
+3 −5
Original line number Diff line number Diff line
@@ -198,7 +198,7 @@ static match_table_t nfs_secflavor_tokens = {
};


static void nfs_umount_begin(struct vfsmount *, int);
static void nfs_umount_begin(struct super_block *);
static int  nfs_statfs(struct dentry *, struct kstatfs *);
static int  nfs_show_options(struct seq_file *, struct vfsmount *);
static int  nfs_show_stats(struct seq_file *, struct vfsmount *);
@@ -647,13 +647,11 @@ static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt)
 * Begin unmount by attempting to remove all automounted mountpoints we added
 * in response to xdev traversals and referrals
 */
static void nfs_umount_begin(struct vfsmount *vfsmnt, int flags)
static void nfs_umount_begin(struct super_block *sb)
{
	struct nfs_server *server = NFS_SB(vfsmnt->mnt_sb);
	struct nfs_server *server = NFS_SB(sb);
	struct rpc_clnt *rpc;

	if (!(flags & MNT_FORCE))
		return;
	/* -EIO all pending I/O */
	rpc = server->client_acl;
	if (!IS_ERR(rpc))
Loading