Loading fs/ntfs/inode.c +4 −3 Original line number Diff line number Diff line Loading @@ -2124,7 +2124,8 @@ int ntfs_read_inode_mount(struct inode *vi) * ntfs_read_inode() will have set up the default ones. */ /* Set uid and gid to root. */ vi->i_uid = vi->i_gid = 0; vi->i_uid = GLOBAL_ROOT_UID; vi->i_gid = GLOBAL_ROOT_GID; /* Regular file. No access for anyone. */ vi->i_mode = S_IFREG; /* No VFS initiated operations allowed for $MFT. */ Loading Loading @@ -2312,8 +2313,8 @@ int ntfs_show_options(struct seq_file *sf, struct dentry *root) ntfs_volume *vol = NTFS_SB(root->d_sb); int i; seq_printf(sf, ",uid=%i", vol->uid); seq_printf(sf, ",gid=%i", vol->gid); seq_printf(sf, ",uid=%i", from_kuid_munged(&init_user_ns, vol->uid)); seq_printf(sf, ",gid=%i", from_kgid_munged(&init_user_ns, vol->gid)); if (vol->fmask == vol->dmask) seq_printf(sf, ",umask=0%o", vol->fmask); else { Loading fs/ntfs/super.c +32 −7 Original line number Diff line number Diff line Loading @@ -102,8 +102,8 @@ static bool parse_options(ntfs_volume *vol, char *opt) char *p, *v, *ov; static char *utf8 = "utf8"; int errors = 0, sloppy = 0; uid_t uid = (uid_t)-1; gid_t gid = (gid_t)-1; kuid_t uid = INVALID_UID; kgid_t gid = INVALID_GID; umode_t fmask = (umode_t)-1, dmask = (umode_t)-1; int mft_zone_multiplier = -1, on_errors = -1; int show_sys_files = -1, case_sensitive = -1, disable_sparse = -1; Loading @@ -128,6 +128,30 @@ static bool parse_options(ntfs_volume *vol, char *opt) if (*v) \ goto needs_val; \ } #define NTFS_GETOPT_UID(option, variable) \ if (!strcmp(p, option)) { \ uid_t uid_value; \ if (!v || !*v) \ goto needs_arg; \ uid_value = simple_strtoul(ov = v, &v, 0); \ if (*v) \ goto needs_val; \ variable = make_kuid(current_user_ns(), uid_value); \ if (!uid_valid(variable)) \ goto needs_val; \ } #define NTFS_GETOPT_GID(option, variable) \ if (!strcmp(p, option)) { \ gid_t gid_value; \ if (!v || !*v) \ goto needs_arg; \ gid_value = simple_strtoul(ov = v, &v, 0); \ if (*v) \ goto needs_val; \ variable = make_kgid(current_user_ns(), gid_value); \ if (!gid_valid(variable)) \ goto needs_val; \ } #define NTFS_GETOPT_OCTAL(option, variable) \ if (!strcmp(p, option)) { \ if (!v || !*v) \ Loading Loading @@ -165,8 +189,8 @@ static bool parse_options(ntfs_volume *vol, char *opt) while ((p = strsep(&opt, ","))) { if ((v = strchr(p, '='))) *v++ = 0; NTFS_GETOPT("uid", uid) else NTFS_GETOPT("gid", gid) NTFS_GETOPT_UID("uid", uid) else NTFS_GETOPT_GID("gid", gid) else NTFS_GETOPT_OCTAL("umask", fmask = dmask) else NTFS_GETOPT_OCTAL("fmask", fmask) else NTFS_GETOPT_OCTAL("dmask", dmask) Loading Loading @@ -283,9 +307,9 @@ static bool parse_options(ntfs_volume *vol, char *opt) vol->on_errors = on_errors; if (!vol->on_errors || vol->on_errors == ON_ERRORS_RECOVER) vol->on_errors |= ON_ERRORS_CONTINUE; if (uid != (uid_t)-1) if (uid_valid(uid)) vol->uid = uid; if (gid != (gid_t)-1) if (gid_valid(gid)) vol->gid = gid; if (fmask != (umode_t)-1) vol->fmask = fmask; Loading Loading @@ -1023,7 +1047,8 @@ static bool load_and_init_mft_mirror(ntfs_volume *vol) * ntfs_read_inode() will have set up the default ones. */ /* Set uid and gid to root. */ tmp_ino->i_uid = tmp_ino->i_gid = 0; tmp_ino->i_uid = GLOBAL_ROOT_UID; tmp_ino->i_gid = GLOBAL_ROOT_GID; /* Regular file. No access for anyone. */ tmp_ino->i_mode = S_IFREG; /* No VFS initiated operations allowed for $MFTMirr. */ Loading fs/ntfs/volume.h +3 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #define _LINUX_NTFS_VOLUME_H #include <linux/rwsem.h> #include <linux/uidgid.h> #include "types.h" #include "layout.h" Loading @@ -46,8 +47,8 @@ typedef struct { sized blocks on the device. */ /* Configuration provided by user at mount time. */ unsigned long flags; /* Miscellaneous flags, see below. */ uid_t uid; /* uid that files will be mounted as. */ gid_t gid; /* gid that files will be mounted as. */ kuid_t uid; /* uid that files will be mounted as. */ kgid_t gid; /* gid that files will be mounted as. */ umode_t fmask; /* The mask for file permissions. */ umode_t dmask; /* The mask for directory permissions. */ Loading init/Kconfig +0 −1 Original line number Diff line number Diff line Loading @@ -949,7 +949,6 @@ config UIDGID_CONVERTED depends on NCP_FS = n depends on NFSD = n depends on NFS_FS = n depends on NTFS_FS = n depends on OCFS2_FS = n depends on OMFS_FS = n depends on QNX4FS_FS = n Loading Loading
fs/ntfs/inode.c +4 −3 Original line number Diff line number Diff line Loading @@ -2124,7 +2124,8 @@ int ntfs_read_inode_mount(struct inode *vi) * ntfs_read_inode() will have set up the default ones. */ /* Set uid and gid to root. */ vi->i_uid = vi->i_gid = 0; vi->i_uid = GLOBAL_ROOT_UID; vi->i_gid = GLOBAL_ROOT_GID; /* Regular file. No access for anyone. */ vi->i_mode = S_IFREG; /* No VFS initiated operations allowed for $MFT. */ Loading Loading @@ -2312,8 +2313,8 @@ int ntfs_show_options(struct seq_file *sf, struct dentry *root) ntfs_volume *vol = NTFS_SB(root->d_sb); int i; seq_printf(sf, ",uid=%i", vol->uid); seq_printf(sf, ",gid=%i", vol->gid); seq_printf(sf, ",uid=%i", from_kuid_munged(&init_user_ns, vol->uid)); seq_printf(sf, ",gid=%i", from_kgid_munged(&init_user_ns, vol->gid)); if (vol->fmask == vol->dmask) seq_printf(sf, ",umask=0%o", vol->fmask); else { Loading
fs/ntfs/super.c +32 −7 Original line number Diff line number Diff line Loading @@ -102,8 +102,8 @@ static bool parse_options(ntfs_volume *vol, char *opt) char *p, *v, *ov; static char *utf8 = "utf8"; int errors = 0, sloppy = 0; uid_t uid = (uid_t)-1; gid_t gid = (gid_t)-1; kuid_t uid = INVALID_UID; kgid_t gid = INVALID_GID; umode_t fmask = (umode_t)-1, dmask = (umode_t)-1; int mft_zone_multiplier = -1, on_errors = -1; int show_sys_files = -1, case_sensitive = -1, disable_sparse = -1; Loading @@ -128,6 +128,30 @@ static bool parse_options(ntfs_volume *vol, char *opt) if (*v) \ goto needs_val; \ } #define NTFS_GETOPT_UID(option, variable) \ if (!strcmp(p, option)) { \ uid_t uid_value; \ if (!v || !*v) \ goto needs_arg; \ uid_value = simple_strtoul(ov = v, &v, 0); \ if (*v) \ goto needs_val; \ variable = make_kuid(current_user_ns(), uid_value); \ if (!uid_valid(variable)) \ goto needs_val; \ } #define NTFS_GETOPT_GID(option, variable) \ if (!strcmp(p, option)) { \ gid_t gid_value; \ if (!v || !*v) \ goto needs_arg; \ gid_value = simple_strtoul(ov = v, &v, 0); \ if (*v) \ goto needs_val; \ variable = make_kgid(current_user_ns(), gid_value); \ if (!gid_valid(variable)) \ goto needs_val; \ } #define NTFS_GETOPT_OCTAL(option, variable) \ if (!strcmp(p, option)) { \ if (!v || !*v) \ Loading Loading @@ -165,8 +189,8 @@ static bool parse_options(ntfs_volume *vol, char *opt) while ((p = strsep(&opt, ","))) { if ((v = strchr(p, '='))) *v++ = 0; NTFS_GETOPT("uid", uid) else NTFS_GETOPT("gid", gid) NTFS_GETOPT_UID("uid", uid) else NTFS_GETOPT_GID("gid", gid) else NTFS_GETOPT_OCTAL("umask", fmask = dmask) else NTFS_GETOPT_OCTAL("fmask", fmask) else NTFS_GETOPT_OCTAL("dmask", dmask) Loading Loading @@ -283,9 +307,9 @@ static bool parse_options(ntfs_volume *vol, char *opt) vol->on_errors = on_errors; if (!vol->on_errors || vol->on_errors == ON_ERRORS_RECOVER) vol->on_errors |= ON_ERRORS_CONTINUE; if (uid != (uid_t)-1) if (uid_valid(uid)) vol->uid = uid; if (gid != (gid_t)-1) if (gid_valid(gid)) vol->gid = gid; if (fmask != (umode_t)-1) vol->fmask = fmask; Loading Loading @@ -1023,7 +1047,8 @@ static bool load_and_init_mft_mirror(ntfs_volume *vol) * ntfs_read_inode() will have set up the default ones. */ /* Set uid and gid to root. */ tmp_ino->i_uid = tmp_ino->i_gid = 0; tmp_ino->i_uid = GLOBAL_ROOT_UID; tmp_ino->i_gid = GLOBAL_ROOT_GID; /* Regular file. No access for anyone. */ tmp_ino->i_mode = S_IFREG; /* No VFS initiated operations allowed for $MFTMirr. */ Loading
fs/ntfs/volume.h +3 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #define _LINUX_NTFS_VOLUME_H #include <linux/rwsem.h> #include <linux/uidgid.h> #include "types.h" #include "layout.h" Loading @@ -46,8 +47,8 @@ typedef struct { sized blocks on the device. */ /* Configuration provided by user at mount time. */ unsigned long flags; /* Miscellaneous flags, see below. */ uid_t uid; /* uid that files will be mounted as. */ gid_t gid; /* gid that files will be mounted as. */ kuid_t uid; /* uid that files will be mounted as. */ kgid_t gid; /* gid that files will be mounted as. */ umode_t fmask; /* The mask for file permissions. */ umode_t dmask; /* The mask for directory permissions. */ Loading
init/Kconfig +0 −1 Original line number Diff line number Diff line Loading @@ -949,7 +949,6 @@ config UIDGID_CONVERTED depends on NCP_FS = n depends on NFSD = n depends on NFS_FS = n depends on NTFS_FS = n depends on OCFS2_FS = n depends on OMFS_FS = n depends on QNX4FS_FS = n Loading