From: David Howells <dhowells@redhat.com> To: linux-fsdevel@vger.kernel.org Cc: dhowells@redhat.com, linux-api@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/4] statx: AFS: Return enhanced file attributes [ver #3] Date: Wed, 23 Nov 2016 00:56:13 +0000 [thread overview] Message-ID: <147986257312.19139.10417237189956494459.stgit@warthog.procyon.org.uk> (raw) In-Reply-To: <147986254484.19139.8038609825799670925.stgit@warthog.procyon.org.uk> Return enhanced file attributes from the AFS filesystem. This includes the following: (1) STATX_ATTR_AUTOMOUNT will be set on automount directories by virtue of S_AUTOMOUNT being set on the inode. These are referrals to other volumes or other cells. STATX_ATIME, STATX_CTIME and STATX_BLOCKS are cleared as AFS does not support them. Example output: [root@andromeda ~]# ./samples/statx/test-statx /afs statx(/afs) = 0 results=7ef Size: 2048 Blocks: 0 IO Block: 4096 directory Device: 00:25 Inode: 1 Links: 2 Access: (0777/drwxrwxrwx) Uid: 0 Gid: 0 Access: 2006-05-07 00:21:15.000000000+0100 Modify: 2006-05-07 00:21:15.000000000+0100 Change: 2006-05-07 00:21:15.000000000+0100 IO-blocksize: blksize=4096 Signed-off-by: David Howells <dhowells@redhat.com> --- fs/afs/inode.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/fs/afs/inode.c b/fs/afs/inode.c index 86cc7264c21c..99662045b6fb 100644 --- a/fs/afs/inode.c +++ b/fs/afs/inode.c @@ -72,9 +72,9 @@ static int afs_inode_map_status(struct afs_vnode *vnode, struct key *key) inode->i_uid = vnode->status.owner; inode->i_gid = GLOBAL_ROOT_GID; inode->i_size = vnode->status.size; - inode->i_ctime.tv_sec = vnode->status.mtime_server; - inode->i_ctime.tv_nsec = 0; - inode->i_atime = inode->i_mtime = inode->i_ctime; + inode->i_mtime.tv_sec = vnode->status.mtime_server; + inode->i_mtime.tv_nsec = 0; + inode->i_atime = inode->i_ctime = inode->i_mtime; inode->i_blocks = 0; inode->i_generation = vnode->fid.unique; inode->i_version = vnode->status.data_version; @@ -375,8 +375,7 @@ int afs_validate(struct afs_vnode *vnode, struct key *key) /* * read the attributes of an inode */ -int afs_getattr(struct vfsmount *mnt, struct dentry *dentry, - struct kstat *stat) +int afs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) { struct inode *inode; @@ -385,6 +384,8 @@ int afs_getattr(struct vfsmount *mnt, struct dentry *dentry, _enter("{ ino=%lu v=%u }", inode->i_ino, inode->i_generation); generic_fillattr(inode, stat); + + stat->result_mask &= ~(STATX_ATIME | STATX_CTIME | STATX_BLOCKS); return 0; }
WARNING: multiple messages have this Message-ID (diff)
From: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> To: linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Subject: [PATCH 4/4] statx: AFS: Return enhanced file attributes [ver #3] Date: Wed, 23 Nov 2016 00:56:13 +0000 [thread overview] Message-ID: <147986257312.19139.10417237189956494459.stgit@warthog.procyon.org.uk> (raw) In-Reply-To: <147986254484.19139.8038609825799670925.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org> Return enhanced file attributes from the AFS filesystem. This includes the following: (1) STATX_ATTR_AUTOMOUNT will be set on automount directories by virtue of S_AUTOMOUNT being set on the inode. These are referrals to other volumes or other cells. STATX_ATIME, STATX_CTIME and STATX_BLOCKS are cleared as AFS does not support them. Example output: [root@andromeda ~]# ./samples/statx/test-statx /afs statx(/afs) = 0 results=7ef Size: 2048 Blocks: 0 IO Block: 4096 directory Device: 00:25 Inode: 1 Links: 2 Access: (0777/drwxrwxrwx) Uid: 0 Gid: 0 Access: 2006-05-07 00:21:15.000000000+0100 Modify: 2006-05-07 00:21:15.000000000+0100 Change: 2006-05-07 00:21:15.000000000+0100 IO-blocksize: blksize=4096 Signed-off-by: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> --- fs/afs/inode.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/fs/afs/inode.c b/fs/afs/inode.c index 86cc7264c21c..99662045b6fb 100644 --- a/fs/afs/inode.c +++ b/fs/afs/inode.c @@ -72,9 +72,9 @@ static int afs_inode_map_status(struct afs_vnode *vnode, struct key *key) inode->i_uid = vnode->status.owner; inode->i_gid = GLOBAL_ROOT_GID; inode->i_size = vnode->status.size; - inode->i_ctime.tv_sec = vnode->status.mtime_server; - inode->i_ctime.tv_nsec = 0; - inode->i_atime = inode->i_mtime = inode->i_ctime; + inode->i_mtime.tv_sec = vnode->status.mtime_server; + inode->i_mtime.tv_nsec = 0; + inode->i_atime = inode->i_ctime = inode->i_mtime; inode->i_blocks = 0; inode->i_generation = vnode->fid.unique; inode->i_version = vnode->status.data_version; @@ -375,8 +375,7 @@ int afs_validate(struct afs_vnode *vnode, struct key *key) /* * read the attributes of an inode */ -int afs_getattr(struct vfsmount *mnt, struct dentry *dentry, - struct kstat *stat) +int afs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) { struct inode *inode; @@ -385,6 +384,8 @@ int afs_getattr(struct vfsmount *mnt, struct dentry *dentry, _enter("{ ino=%lu v=%u }", inode->i_ino, inode->i_generation); generic_fillattr(inode, stat); + + stat->result_mask &= ~(STATX_ATIME | STATX_CTIME | STATX_BLOCKS); return 0; }
next prev parent reply other threads:[~2016-11-23 1:04 UTC|newest] Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-11-23 0:55 [RFC][PATCH 0/4] Enhanced file stat system call [ver #3] David Howells 2016-11-23 0:55 ` David Howells 2016-11-23 0:55 ` [PATCH 1/4] statx: Add a system call to make enhanced file info available " David Howells 2016-11-23 8:37 ` Michael Kerrisk (man-pages) 2016-11-23 22:42 ` Andreas Dilger 2016-11-23 22:42 ` Andreas Dilger 2016-11-23 22:57 ` Andreas Dilger 2016-11-23 22:57 ` Andreas Dilger 2016-11-24 8:13 ` Michael Kerrisk (man-pages) 2016-11-24 8:13 ` Michael Kerrisk (man-pages) 2016-11-24 2:08 ` Andreas Dilger 2016-11-24 2:08 ` Andreas Dilger 2016-11-24 7:27 ` David Howells 2016-11-24 7:27 ` David Howells 2016-12-04 4:00 ` Al Viro 2016-12-04 4:38 ` Al Viro 2016-12-04 16:05 ` Al Viro 2016-12-04 17:33 ` Al Viro 2016-12-04 17:33 ` Al Viro 2016-12-05 14:49 ` Miklos Szeredi 2016-12-05 14:49 ` Miklos Szeredi 2016-12-05 15:37 ` David Howells 2016-12-05 15:37 ` David Howells 2016-11-23 0:55 ` [PATCH 2/4] statx: Ext4: Return enhanced file attributes " David Howells 2016-11-23 17:59 ` Andreas Dilger 2016-11-23 17:59 ` Andreas Dilger 2016-11-23 0:56 ` [PATCH 3/4] statx: NFS: " David Howells 2016-11-23 0:56 ` David Howells [this message] 2016-11-23 0:56 ` [PATCH 4/4] statx: AFS: " David Howells 2016-11-24 2:06 ` Andreas Dilger 2016-11-24 2:06 ` Andreas Dilger
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=147986257312.19139.10417237189956494459.stgit@warthog.procyon.org.uk \ --to=dhowells@redhat.com \ --cc=linux-api@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ /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.