From: Andrei Vagin <avagin@xxxxxxxxx> It looks like everything is already prepared for that and we only need to call do_remount_sb() to apply changes from fs_context. Signed-off-by: Andrei Vagin <avagin@xxxxxxxxx> --- fs/fsopen.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/fs/fsopen.c b/fs/fsopen.c index e79bb5b085d6..6991230a7b59 100644 --- a/fs/fsopen.c +++ b/fs/fsopen.c @@ -273,7 +273,25 @@ static int vfs_fsconfig_action(struct fs_context *fc, enum fsconfig_command cmd) else fc->phase = FS_CONTEXT_FAILED; return ret; + case FSCONFIG_CMD_RECONFIGURE: + { + struct super_block *sb; + + if (fc->phase != FS_CONTEXT_RECONF_PARAMS) + return -EBUSY; + fc->phase = FS_CONTEXT_RECONFIGURING; + sb = fc->root->d_sb; + down_write(&sb->s_umount); + ret = do_remount_sb(sb, 0, NULL, 0, 0, fc); + up_write(&sb->s_umount); + + if (ret == 0) + fc->phase = FS_CONTEXT_CREATE_PARAMS; + else + fc->phase = FS_CONTEXT_FAILED; + return ret; + } default: return -EOPNOTSUPP; } -- 2.17.1