]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - include/linux/fs.h
userns: userns: check user namespace for task->file uid equivalence checks
[karo-tx-linux.git] / include / linux / fs.h
index 92f7e04aea11bb5df4332b80933ad41372d5d056..9eebc646d14a45989902d2995e82ee62a178a974 100644 (file)
@@ -662,9 +662,9 @@ struct address_space {
 
 struct block_device {
        dev_t                   bd_dev;  /* not a kdev_t - it's a search key */
+       int                     bd_openers;
        struct inode *          bd_inode;       /* will die */
        struct super_block *    bd_super;
-       int                     bd_openers;
        struct mutex            bd_mutex;       /* open/close mutex */
        struct list_head        bd_inodes;
        void *                  bd_claiming;
@@ -1457,8 +1457,13 @@ enum {
 #define put_fs_excl() atomic_dec(&current->fs_excl)
 #define has_fs_excl() atomic_read(&current->fs_excl)
 
-#define is_owner_or_cap(inode) \
-       ((current_fsuid() == (inode)->i_uid) || capable(CAP_FOWNER))
+/*
+ * until VFS tracks user namespaces for inodes, just make all files
+ * belong to init_user_ns
+ */
+extern struct user_namespace init_user_ns;
+#define inode_userns(inode) (&init_user_ns)
+extern bool is_owner_or_cap(const struct inode *inode);
 
 /* not quite ready to be deprecated, but... */
 extern void lock_super(struct super_block *);
@@ -1839,7 +1844,6 @@ extern struct dentry *mount_pseudo(struct file_system_type *, char *,
        const struct super_operations *ops,
        const struct dentry_operations *dops,
        unsigned long);
-extern void simple_set_mnt(struct vfsmount *mnt, struct super_block *sb);
 
 static inline void sb_mark_dirty(struct super_block *sb)
 {