]> git.karo-electronics.de Git - linux-beck.git/commitdiff
userns: Convert ubifs to use kuid/kgid
authorEric W. Biederman <ebiederm@xmission.com>
Tue, 7 Feb 2012 23:50:56 +0000 (15:50 -0800)
committerEric W. Biederman <ebiederm@xmission.com>
Fri, 21 Sep 2012 10:13:36 +0000 (03:13 -0700)
Cc: Artem Bityutskiy <dedekind1@gmail.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
fs/ubifs/budget.c
fs/ubifs/debug.c
fs/ubifs/journal.c
fs/ubifs/sb.c
fs/ubifs/super.c
fs/ubifs/ubifs.h
init/Kconfig

index bc4f94b28706517e8216585b46847ea5a1ce9cc1..969489e478bcf85f043d97a042413c3506fd8b5c 100644 (file)
@@ -272,8 +272,8 @@ long long ubifs_calc_available(const struct ubifs_info *c, int min_idx_lebs)
  */
 static int can_use_rp(struct ubifs_info *c)
 {
-       if (current_fsuid() == c->rp_uid || capable(CAP_SYS_RESOURCE) ||
-           (c->rp_gid != 0 && in_group_p(c->rp_gid)))
+       if (uid_eq(current_fsuid(), c->rp_uid) || capable(CAP_SYS_RESOURCE) ||
+           (!gid_eq(c->rp_gid, GLOBAL_ROOT_GID) && in_group_p(c->rp_gid)))
                return 1;
        return 0;
 }
index bb3167257aabfed6d16452eed551e577c95b706d..340d1afc1302406942a09739e9adfe6790e2fac9 100644 (file)
@@ -243,8 +243,8 @@ void ubifs_dump_inode(struct ubifs_info *c, const struct inode *inode)
        printk(KERN_ERR "\tsize           %llu\n",
               (unsigned long long)i_size_read(inode));
        printk(KERN_ERR "\tnlink          %u\n", inode->i_nlink);
-       printk(KERN_ERR "\tuid            %u\n", (unsigned int)inode->i_uid);
-       printk(KERN_ERR "\tgid            %u\n", (unsigned int)inode->i_gid);
+       printk(KERN_ERR "\tuid            %u\n", (unsigned int)i_uid_read(inode));
+       printk(KERN_ERR "\tgid            %u\n", (unsigned int)i_gid_read(inode));
        printk(KERN_ERR "\tatime          %u.%u\n",
               (unsigned int)inode->i_atime.tv_sec,
               (unsigned int)inode->i_atime.tv_nsec);
index 12c0f154ca83ec1e4eef8942f23f0ddb251cc2fc..afaad07f3b29f4465ba2b3e0702a947f7b60c071 100644 (file)
@@ -469,8 +469,8 @@ static void pack_inode(struct ubifs_info *c, struct ubifs_ino_node *ino,
        ino->ctime_nsec = cpu_to_le32(inode->i_ctime.tv_nsec);
        ino->mtime_sec  = cpu_to_le64(inode->i_mtime.tv_sec);
        ino->mtime_nsec = cpu_to_le32(inode->i_mtime.tv_nsec);
-       ino->uid   = cpu_to_le32(inode->i_uid);
-       ino->gid   = cpu_to_le32(inode->i_gid);
+       ino->uid   = cpu_to_le32(i_uid_read(inode));
+       ino->gid   = cpu_to_le32(i_gid_read(inode));
        ino->mode  = cpu_to_le32(inode->i_mode);
        ino->flags = cpu_to_le32(ui->flags);
        ino->size  = cpu_to_le64(ui->ui_size);
index 15e2fc5aa60bd4790a86c828aaea6995b17e1737..52c21f4190f6ba50d9b4d58ef3d83e97af2cd421 100644 (file)
@@ -611,8 +611,8 @@ int ubifs_read_superblock(struct ubifs_info *c)
        c->fanout        = le32_to_cpu(sup->fanout);
        c->lsave_cnt     = le32_to_cpu(sup->lsave_cnt);
        c->rp_size       = le64_to_cpu(sup->rp_size);
-       c->rp_uid        = le32_to_cpu(sup->rp_uid);
-       c->rp_gid        = le32_to_cpu(sup->rp_gid);
+       c->rp_uid        = make_kuid(&init_user_ns, le32_to_cpu(sup->rp_uid));
+       c->rp_gid        = make_kgid(&init_user_ns, le32_to_cpu(sup->rp_gid));
        sup_flags        = le32_to_cpu(sup->flags);
        if (!c->mount_opts.override_compr)
                c->default_compr = le16_to_cpu(sup->default_compr);
index 1c766c39c03819b4d088f19f0215c63a89f2b539..f39bad9db61cdacfd0acb4324924ab21cc347517 100644 (file)
@@ -130,8 +130,8 @@ struct inode *ubifs_iget(struct super_block *sb, unsigned long inum)
 
        inode->i_flags |= (S_NOCMTIME | S_NOATIME);
        set_nlink(inode, le32_to_cpu(ino->nlink));
-       inode->i_uid   = le32_to_cpu(ino->uid);
-       inode->i_gid   = le32_to_cpu(ino->gid);
+       i_uid_write(inode, le32_to_cpu(ino->uid));
+       i_gid_write(inode, le32_to_cpu(ino->gid));
        inode->i_atime.tv_sec  = (int64_t)le64_to_cpu(ino->atime_sec);
        inode->i_atime.tv_nsec = le32_to_cpu(ino->atime_nsec);
        inode->i_mtime.tv_sec  = (int64_t)le64_to_cpu(ino->mtime_sec);
index 1e5a08623d112193d2d96d277d590b62b545279c..64f2367c2f4c42caad8ee72153cc94b7de9b5e8a 100644 (file)
@@ -1426,8 +1426,8 @@ struct ubifs_info {
 
        long long rp_size;
        long long report_rp_size;
-       uid_t rp_uid;
-       gid_t rp_gid;
+       kuid_t rp_uid;
+       kgid_t rp_gid;
 
        /* The below fields are used only during mounting and re-mounting */
        unsigned int empty:1;
index d88f945fa61048935fe2ffb7e2575f5aa84bd8ee..21adc1c997adcfc267b7b1ba67ff41b845467d0e 100644 (file)
@@ -939,7 +939,6 @@ config UIDGID_CONVERTED
        depends on NFSD = n
        depends on NFS_FS = n
        depends on OCFS2_FS = n
-       depends on UBIFS_FS = n
        depends on UDF_FS = n
        depends on UFS_FS = n
        depends on XFS_FS = n