From: Wang Shilong <wangshilong1991@gmail.com> To: linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net Cc: lixi@ddn.com, adilger@dilger.ca, Wang Shilong <wshilong@ddn.com> Subject: [PATCH 5/8] fs: add project support to statx Date: Fri, 1 Mar 2019 23:05:38 +0900 [thread overview] Message-ID: <1551449141-7884-6-git-send-email-wshilong1991@gmail.com> (raw) In-Reply-To: <1551449141-7884-1-git-send-email-wshilong1991@gmail.com> From: Wang Shilong <wshilong@ddn.com> From: Wang Shilong <wshilong@ddn.com> Extend statx to support project ID and inherit attribute. Signed-off-by: Wang Shilong <wshilong@ddn.com> --- fs/stat.c | 1 + include/linux/stat.h | 2 ++ include/uapi/linux/stat.h | 8 ++++++-- tools/include/uapi/linux/stat.h | 8 ++++++-- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/fs/stat.c b/fs/stat.c index adbfcd86c81b..82d855c4647c 100644 --- a/fs/stat.c +++ b/fs/stat.c @@ -551,6 +551,7 @@ cp_statx(const struct kstat *stat, struct statx __user *buffer) tmp.stx_rdev_minor = MINOR(stat->rdev); tmp.stx_dev_major = MAJOR(stat->dev); tmp.stx_dev_minor = MINOR(stat->dev); + tmp.stx_projid = (u32)from_kprojid(&init_user_ns, stat->projid); return copy_to_user(buffer, &tmp, sizeof(tmp)) ? -EFAULT : 0; } diff --git a/include/linux/stat.h b/include/linux/stat.h index 765573dc17d6..72c9d2ab5343 100644 --- a/include/linux/stat.h +++ b/include/linux/stat.h @@ -18,6 +18,7 @@ #include <linux/types.h> #include <linux/time.h> #include <linux/uidgid.h> +#include <linux/projid.h> #define KSTAT_QUERY_FLAGS (AT_STATX_SYNC_TYPE) @@ -40,6 +41,7 @@ struct kstat { dev_t rdev; kuid_t uid; kgid_t gid; + kprojid_t projid; loff_t size; struct timespec64 atime; struct timespec64 mtime; diff --git a/include/uapi/linux/stat.h b/include/uapi/linux/stat.h index 7b35e98d3c58..56d35a2cbd0c 100644 --- a/include/uapi/linux/stat.h +++ b/include/uapi/linux/stat.h @@ -123,7 +123,9 @@ struct statx { __u32 stx_dev_major; /* ID of device containing file [uncond] */ __u32 stx_dev_minor; /* 0x90 */ - __u64 __spare2[14]; /* Spare space for future expansion */ + __u32 stx_projid; /* Project ID of file */ + __u32 __spare1[1]; + __u64 __spare2[13]; /* Spare space for future expansion */ /* 0x100 */ }; @@ -148,7 +150,8 @@ struct statx { #define STATX_BLOCKS 0x00000400U /* Want/got stx_blocks */ #define STATX_BASIC_STATS 0x000007ffU /* The stuff in the normal stat struct */ #define STATX_BTIME 0x00000800U /* Want/got stx_btime */ -#define STATX_ALL 0x00000fffU /* All currently supported flags */ +#define STATX_PROJID 0x00001000U /* Want/Got stx_projid */ +#define STATX_ALL 0x00001fffU /* All currently supported flags */ #define STATX__RESERVED 0x80000000U /* Reserved for future struct statx expansion */ /* @@ -170,5 +173,6 @@ struct statx { #define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */ +#define STATX_ATTR_PROJINHERIT 0x00002000 /* [I] File project inherit is set */ #endif /* _UAPI_LINUX_STAT_H */ diff --git a/tools/include/uapi/linux/stat.h b/tools/include/uapi/linux/stat.h index 7b35e98d3c58..21b542b3b061 100644 --- a/tools/include/uapi/linux/stat.h +++ b/tools/include/uapi/linux/stat.h @@ -123,7 +123,9 @@ struct statx { __u32 stx_dev_major; /* ID of device containing file [uncond] */ __u32 stx_dev_minor; /* 0x90 */ - __u64 __spare2[14]; /* Spare space for future expansion */ + __u32 stx_projid; /* Project ID of file */ + __u32 __spare1[1]; + __u64 __spare2[13]; /* Spare space for future expansion */ /* 0x100 */ }; @@ -148,7 +150,8 @@ struct statx { #define STATX_BLOCKS 0x00000400U /* Want/got stx_blocks */ #define STATX_BASIC_STATS 0x000007ffU /* The stuff in the normal stat struct */ #define STATX_BTIME 0x00000800U /* Want/got stx_btime */ -#define STATX_ALL 0x00000fffU /* All currently supported flags */ +#define STATX_PROJID 0x00001000U /* Want/Got stx_projid */ +#define STATX_ALL 0x00001fffU /* All currently supported flags */ #define STATX__RESERVED 0x80000000U /* Reserved for future struct statx expansion */ /* @@ -170,5 +173,6 @@ struct statx { #define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */ +#define STATX_ATTR_PROJINHERIT 0x00002000 /* [I] File project inherit is set */ #endif /* _UAPI_LINUX_STAT_H */ -- 2.19.1
WARNING: multiple messages have this Message-ID (diff)
From: Wang Shilong <wangshilong1991@gmail.com> To: linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net Cc: adilger@dilger.ca, lixi@ddn.com, Wang Shilong <wshilong@ddn.com> Subject: [PATCH 5/8] fs: add project support to statx Date: Fri, 1 Mar 2019 23:05:38 +0900 [thread overview] Message-ID: <1551449141-7884-6-git-send-email-wshilong1991@gmail.com> (raw) In-Reply-To: <1551449141-7884-1-git-send-email-wshilong1991@gmail.com> From: Wang Shilong <wshilong@ddn.com> From: Wang Shilong <wshilong@ddn.com> Extend statx to support project ID and inherit attribute. Signed-off-by: Wang Shilong <wshilong@ddn.com> --- fs/stat.c | 1 + include/linux/stat.h | 2 ++ include/uapi/linux/stat.h | 8 ++++++-- tools/include/uapi/linux/stat.h | 8 ++++++-- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/fs/stat.c b/fs/stat.c index adbfcd86c81b..82d855c4647c 100644 --- a/fs/stat.c +++ b/fs/stat.c @@ -551,6 +551,7 @@ cp_statx(const struct kstat *stat, struct statx __user *buffer) tmp.stx_rdev_minor = MINOR(stat->rdev); tmp.stx_dev_major = MAJOR(stat->dev); tmp.stx_dev_minor = MINOR(stat->dev); + tmp.stx_projid = (u32)from_kprojid(&init_user_ns, stat->projid); return copy_to_user(buffer, &tmp, sizeof(tmp)) ? -EFAULT : 0; } diff --git a/include/linux/stat.h b/include/linux/stat.h index 765573dc17d6..72c9d2ab5343 100644 --- a/include/linux/stat.h +++ b/include/linux/stat.h @@ -18,6 +18,7 @@ #include <linux/types.h> #include <linux/time.h> #include <linux/uidgid.h> +#include <linux/projid.h> #define KSTAT_QUERY_FLAGS (AT_STATX_SYNC_TYPE) @@ -40,6 +41,7 @@ struct kstat { dev_t rdev; kuid_t uid; kgid_t gid; + kprojid_t projid; loff_t size; struct timespec64 atime; struct timespec64 mtime; diff --git a/include/uapi/linux/stat.h b/include/uapi/linux/stat.h index 7b35e98d3c58..56d35a2cbd0c 100644 --- a/include/uapi/linux/stat.h +++ b/include/uapi/linux/stat.h @@ -123,7 +123,9 @@ struct statx { __u32 stx_dev_major; /* ID of device containing file [uncond] */ __u32 stx_dev_minor; /* 0x90 */ - __u64 __spare2[14]; /* Spare space for future expansion */ + __u32 stx_projid; /* Project ID of file */ + __u32 __spare1[1]; + __u64 __spare2[13]; /* Spare space for future expansion */ /* 0x100 */ }; @@ -148,7 +150,8 @@ struct statx { #define STATX_BLOCKS 0x00000400U /* Want/got stx_blocks */ #define STATX_BASIC_STATS 0x000007ffU /* The stuff in the normal stat struct */ #define STATX_BTIME 0x00000800U /* Want/got stx_btime */ -#define STATX_ALL 0x00000fffU /* All currently supported flags */ +#define STATX_PROJID 0x00001000U /* Want/Got stx_projid */ +#define STATX_ALL 0x00001fffU /* All currently supported flags */ #define STATX__RESERVED 0x80000000U /* Reserved for future struct statx expansion */ /* @@ -170,5 +173,6 @@ struct statx { #define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */ +#define STATX_ATTR_PROJINHERIT 0x00002000 /* [I] File project inherit is set */ #endif /* _UAPI_LINUX_STAT_H */ diff --git a/tools/include/uapi/linux/stat.h b/tools/include/uapi/linux/stat.h index 7b35e98d3c58..21b542b3b061 100644 --- a/tools/include/uapi/linux/stat.h +++ b/tools/include/uapi/linux/stat.h @@ -123,7 +123,9 @@ struct statx { __u32 stx_dev_major; /* ID of device containing file [uncond] */ __u32 stx_dev_minor; /* 0x90 */ - __u64 __spare2[14]; /* Spare space for future expansion */ + __u32 stx_projid; /* Project ID of file */ + __u32 __spare1[1]; + __u64 __spare2[13]; /* Spare space for future expansion */ /* 0x100 */ }; @@ -148,7 +150,8 @@ struct statx { #define STATX_BLOCKS 0x00000400U /* Want/got stx_blocks */ #define STATX_BASIC_STATS 0x000007ffU /* The stuff in the normal stat struct */ #define STATX_BTIME 0x00000800U /* Want/got stx_btime */ -#define STATX_ALL 0x00000fffU /* All currently supported flags */ +#define STATX_PROJID 0x00001000U /* Want/Got stx_projid */ +#define STATX_ALL 0x00001fffU /* All currently supported flags */ #define STATX__RESERVED 0x80000000U /* Reserved for future struct statx expansion */ /* @@ -170,5 +173,6 @@ struct statx { #define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */ +#define STATX_ATTR_PROJINHERIT 0x00002000 /* [I] File project inherit is set */ #endif /* _UAPI_LINUX_STAT_H */ -- 2.19.1
next prev parent reply other threads:[~2019-03-01 14:06 UTC|newest] Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-03-01 14:05 [PATCH 0/8] add generic interface to set/get project Wang Shilong 2019-03-01 14:05 ` Wang Shilong 2019-03-01 14:05 ` [PATCH 1/8] fs: add support to change project ID Wang Shilong 2019-03-01 14:05 ` Wang Shilong 2019-03-03 21:53 ` Dave Chinner 2019-03-03 21:53 ` Dave Chinner 2019-03-04 23:36 ` 答复: " Wang Shilong 2019-03-04 23:36 ` Wang Shilong 2019-03-04 23:36 ` Wang Shilong 2019-03-01 14:05 ` [PATCH 2/8] ext4: support project ID in ext4_setattr() Wang Shilong 2019-03-01 14:05 ` Wang Shilong 2019-03-01 14:05 ` [PATCH 3/8] f2fs: support project ID in f2fs_setattr() Wang Shilong 2019-03-01 14:05 ` Wang Shilong 2019-03-01 14:05 ` [PATCH 4/8] xfs: support project ID in xfs_setattr() Wang Shilong 2019-03-01 14:05 ` Wang Shilong 2019-03-01 15:49 ` Darrick J. Wong 2019-03-01 15:49 ` Darrick J. Wong 2019-03-03 22:18 ` Dave Chinner 2019-03-03 22:18 ` Dave Chinner 2019-03-01 14:05 ` Wang Shilong [this message] 2019-03-01 14:05 ` [PATCH 5/8] fs: add project support to statx Wang Shilong 2019-03-03 23:01 ` Dave Chinner 2019-03-03 23:01 ` Dave Chinner 2019-03-01 14:05 ` [PATCH 6/8] ext4: support project in ext4_getattr() Wang Shilong 2019-03-01 14:05 ` Wang Shilong 2019-03-01 14:05 ` [PATCH 7/8] f2fs: support project in f2fs_getattr() Wang Shilong 2019-03-01 14:05 ` Wang Shilong 2019-03-01 14:05 ` [PATCH 8/8] xfs: support project in xfs_getattr() Wang Shilong 2019-03-01 14:05 ` Wang Shilong 2019-03-01 15:39 ` Darrick J. Wong 2019-03-01 15:39 ` Darrick J. Wong 2019-03-03 23:03 ` Dave Chinner 2019-03-03 23:03 ` Dave Chinner 2019-03-03 21:11 ` [PATCH 0/8] add generic interface to set/get project Dave Chinner 2019-03-03 21:11 ` Dave Chinner
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1551449141-7884-6-git-send-email-wshilong1991@gmail.com \ --to=wangshilong1991@gmail.com \ --cc=adilger@dilger.ca \ --cc=linux-ext4@vger.kernel.org \ --cc=linux-f2fs-devel@lists.sourceforge.net \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-xfs@vger.kernel.org \ --cc=lixi@ddn.com \ --cc=wshilong@ddn.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.