Messages in this thread Patch in this message | | | From | Daniil Lunev <> | Subject | [PATCH v3 2/2] FUSE: Retire superblock on force unmount | Date | Mon, 30 May 2022 11:39:58 +1000 |
| |
Force unmount of FUSE severes the connection with the user space, even if there are still open files. Subsequent remount tries to re-use the superblock held by the open files, which is meaningless in the FUSE case after disconnect - reused super block doesn't have userspace counterpart attached to it and is incapable of doing any IO.
Signed-off-by: Daniil Lunev <dlunev@chromium.org>
---
Changes in v3: - No changes
Changes in v2: - Use an exported function instead of directly modifying superblock
fs/fuse/inode.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index 8c0665c5dff88..8875361544b2a 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c @@ -476,8 +476,11 @@ static void fuse_umount_begin(struct super_block *sb) { struct fuse_conn *fc = get_fuse_conn_super(sb); - if (!fc->no_force_umount) - fuse_abort_conn(fc); + if (fc->no_force_umount) + return; + + fuse_abort_conn(fc); + retire_super(sb); } static void fuse_send_destroy(struct fuse_mount *fm) -- 2.31.0
| |