···21242124 * ntfs_read_inode() will have set up the default ones.21252125 */21262126 /* Set uid and gid to root. */21272127- vi->i_uid = vi->i_gid = 0;21272127+ vi->i_uid = GLOBAL_ROOT_UID;21282128+ vi->i_gid = GLOBAL_ROOT_GID;21282129 /* Regular file. No access for anyone. */21292130 vi->i_mode = S_IFREG;21302131 /* No VFS initiated operations allowed for $MFT. */···23132312 ntfs_volume *vol = NTFS_SB(root->d_sb);23142313 int i;2315231423162316- seq_printf(sf, ",uid=%i", vol->uid);23172317- seq_printf(sf, ",gid=%i", vol->gid);23152315+ seq_printf(sf, ",uid=%i", from_kuid_munged(&init_user_ns, vol->uid));23162316+ seq_printf(sf, ",gid=%i", from_kgid_munged(&init_user_ns, vol->gid));23182317 if (vol->fmask == vol->dmask)23192318 seq_printf(sf, ",umask=0%o", vol->fmask);23202319 else {
+32-7
fs/ntfs/super.c
···102102 char *p, *v, *ov;103103 static char *utf8 = "utf8";104104 int errors = 0, sloppy = 0;105105- uid_t uid = (uid_t)-1;106106- gid_t gid = (gid_t)-1;105105+ kuid_t uid = INVALID_UID;106106+ kgid_t gid = INVALID_GID;107107 umode_t fmask = (umode_t)-1, dmask = (umode_t)-1;108108 int mft_zone_multiplier = -1, on_errors = -1;109109 int show_sys_files = -1, case_sensitive = -1, disable_sparse = -1;···126126 goto needs_arg; \127127 variable = simple_strtoul(ov = v, &v, 0); \128128 if (*v) \129129+ goto needs_val; \130130+ }131131+#define NTFS_GETOPT_UID(option, variable) \132132+ if (!strcmp(p, option)) { \133133+ uid_t uid_value; \134134+ if (!v || !*v) \135135+ goto needs_arg; \136136+ uid_value = simple_strtoul(ov = v, &v, 0); \137137+ if (*v) \138138+ goto needs_val; \139139+ variable = make_kuid(current_user_ns(), uid_value); \140140+ if (!uid_valid(variable)) \141141+ goto needs_val; \142142+ }143143+#define NTFS_GETOPT_GID(option, variable) \144144+ if (!strcmp(p, option)) { \145145+ gid_t gid_value; \146146+ if (!v || !*v) \147147+ goto needs_arg; \148148+ gid_value = simple_strtoul(ov = v, &v, 0); \149149+ if (*v) \150150+ goto needs_val; \151151+ variable = make_kgid(current_user_ns(), gid_value); \152152+ if (!gid_valid(variable)) \129153 goto needs_val; \130154 }131155#define NTFS_GETOPT_OCTAL(option, variable) \···189165 while ((p = strsep(&opt, ","))) {190166 if ((v = strchr(p, '=')))191167 *v++ = 0;192192- NTFS_GETOPT("uid", uid)193193- else NTFS_GETOPT("gid", gid)168168+ NTFS_GETOPT_UID("uid", uid)169169+ else NTFS_GETOPT_GID("gid", gid)194170 else NTFS_GETOPT_OCTAL("umask", fmask = dmask)195171 else NTFS_GETOPT_OCTAL("fmask", fmask)196172 else NTFS_GETOPT_OCTAL("dmask", dmask)···307283 vol->on_errors = on_errors;308284 if (!vol->on_errors || vol->on_errors == ON_ERRORS_RECOVER)309285 vol->on_errors |= ON_ERRORS_CONTINUE;310310- if (uid != (uid_t)-1)286286+ if (uid_valid(uid))311287 vol->uid = uid;312312- if (gid != (gid_t)-1)288288+ if (gid_valid(gid))313289 vol->gid = gid;314290 if (fmask != (umode_t)-1)315291 vol->fmask = fmask;···10471023 * ntfs_read_inode() will have set up the default ones.10481024 */10491025 /* Set uid and gid to root. */10501050- tmp_ino->i_uid = tmp_ino->i_gid = 0;10261026+ tmp_ino->i_uid = GLOBAL_ROOT_UID;10271027+ tmp_ino->i_gid = GLOBAL_ROOT_GID;10511028 /* Regular file. No access for anyone. */10521029 tmp_ino->i_mode = S_IFREG;10531030 /* No VFS initiated operations allowed for $MFTMirr. */
+3-2
fs/ntfs/volume.h
···2525#define _LINUX_NTFS_VOLUME_H26262727#include <linux/rwsem.h>2828+#include <linux/uidgid.h>28292930#include "types.h"3031#include "layout.h"···4746 sized blocks on the device. */4847 /* Configuration provided by user at mount time. */4948 unsigned long flags; /* Miscellaneous flags, see below. */5050- uid_t uid; /* uid that files will be mounted as. */5151- gid_t gid; /* gid that files will be mounted as. */4949+ kuid_t uid; /* uid that files will be mounted as. */5050+ kgid_t gid; /* gid that files will be mounted as. */5251 umode_t fmask; /* The mask for file permissions. */5352 umode_t dmask; /* The mask for directory5453 permissions. */
-1
init/Kconfig
···949949 depends on NCP_FS = n950950 depends on NFSD = n951951 depends on NFS_FS = n952952- depends on NTFS_FS = n953952 depends on OCFS2_FS = n954953 depends on OMFS_FS = n955954 depends on QNX4FS_FS = n