Andreas Dilger | 3 May 00:48 2016

Re: [PATCH 3/6] statx: Ext4: Return enhanced file attributes

On Apr 29, 2016, at 6:57 AM, David Howells <dhowells <at>> wrote:
> Return enhanced file attributes from the Ext4 filesystem.  This includes
> the following:
> (1) The inode creation time (i_crtime) as i_btime, setting STATX_BTIME.
> (2) The inode i_version as st_version if a file with I_VERSION set or a
>     directory, setting STATX_VERSION.
> (3) FS_xxx_FL flags are returned as for ioctl(FS_IOC_GETFLAGS), setting

I don't see where this is implemented in this patch, and it should be
removed from the commit message to avoid confusion.

> This requires that all ext4 inodes have a getattr call, not just some of
> them, so to this end, split the ext4_getattr() function and only call part
> of it where appropriate.
> Example output:
> 	[root <at> andromeda ~]# ./samples/statx/test-statx /usr
> 	statx(/usr) = 0
> 	results=37ef
> 	  Size: 4096            Blocks: 16         IO Block: 4096    directory
> 	Device: 08:02           Inode: 1572865     Links: 14
> 	Access: (0755/drwxr-xr-x)  Uid:     0   Gid:     0
> 	Access: 2015-11-03 16:12:30.000000000+0000
> 	Modify: 2013-10-18 15:29:18.000000000+0100
(Continue reading)

Andreas Gruenbacher | 3 May 00:45 2016

[RFC 0/8] Xattr inode operation removal

Hi all,

what are your thoughts on this patch set?  It applies on top of the
work.xattr branch [*], converts the remaining filesystems over to xattr
handlers, and replaces the getxattr, setxattr, and removexattr inode
operations.  The only way to implement getxattr, setxattr, and
removexattr with this approach is through xattr handlers.

*** Please don't merge yet: this is boot tested only so far! ***

Lustre currently also breaks; I haven't succeeded in cleaning up the
mess there.  Oleg and Andreas, would you like to look into that?



Andreas Gruenbacher (8):
  ecryptfs: Switch to generic xattr handlers
  overlayfs: Switch to generic xattr handlers
  fuse: Switch to generic xattr handlers
  evm: Turn evm_update_evmxattr into void function
  xattr: Add per-inode xattr handlers as a new inode operation
  xattr: Add __vfs_{get,set,remove}xattr helpers
  xattr: Stop calling {get,set,remove}xattr inode operations
  xattr: Remove generic xattr handlers

 fs/9p/vfs_inode_dotl.c                |   9 --
 fs/bad_inode.c                        |  33 +++--
(Continue reading)

Toshi Kani | 2 May 20:42 2016

[PATCH v2 0/3] Add alignment check for DAX mount

When a partition is not aligned by 4KB, mount -o dax succeeds,
but any read/write access to the filesystem fails, except for
metadata update.

Add alignment check to ext4, ext2, and xfs.

 - Use a helper function via ->direct_access for the check.
   (Christoph Hellwig)
 - Call bdev_direct_access() with sector 0 for the check.
   (Boaz Harrosh)

Toshi Kani (3):
 1/3 ext4: Add alignment check for DAX mount
 2/3 ext2: Add alignment check for DAX mount
 3/3 xfs: Add alignment check for DAX mount

 fs/ext2/super.c    | 21 +++++++++++++++++++--
 fs/ext4/super.c    | 20 ++++++++++++++++++--
 fs/xfs/xfs_super.c | 23 +++++++++++++++++++----
 3 files changed, 56 insertions(+), 8 deletions(-)
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo <at>
More majordomo info at

Jan Kara | 2 May 16:36 2016

[GIT PULL] UDF fix for 4.6-rc7

  Hello Linus,

  could you please pull from

git:// for_linus

to get a fix of a regression in UDF that got introduced in 4.6-rc1 by one
of the charset encoding fixes.

Top of the tree is c26f6c615788. The full shortlog is:

Andrew Gabbasov (1):
      udf: Fix conversion of 'dstring' fields to UTF8

The diffstat is

 fs/udf/super.c   |  4 ++--
 fs/udf/udfdecl.h |  2 +-
 fs/udf/unicode.c | 16 ++++++++++++++--
 3 files changed, 17 insertions(+), 5 deletions(-)



Jan Kara <jack <at>>
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo <at>
(Continue reading)

kbuild test robot | 2 May 02:41 2016

[vfs:for-next 112/127] fs/nfs/dir.c:722:2: error: implicit declaration of function 'page_put'

tree: for-next
head:   50cc3b2ebc27a471aeead5e55d17f1914c3e94bf
commit: 4ca3616f6dfadf9f0824b3d793eacc84cf4e7586 [112/127] nfs: switch to ->iterate_shared()
config: x86_64-lkp (attached as .config)
compiler: gcc-4.9 (Debian 4.9.3-14) 4.9.3
        git checkout 4ca3616f6dfadf9f0824b3d793eacc84cf4e7586
        # save the attached .config to linux build tree
        make ARCH=x86_64 

Note: the vfs/for-next HEAD 50cc3b2ebc27a471aeead5e55d17f1914c3e94bf builds fine.
      It only hurts bisectibility.

All errors (new ones prefixed by >>):

   fs/nfs/dir.c: In function 'cache_page_release':
>> fs/nfs/dir.c:722:2: error: implicit declaration of function 'page_put' [-Werror=implicit-function-declaration]
   cc1: some warnings being treated as errors

vim +/page_put +722 fs/nfs/dir.c

   716	}
   718	static
   719	void cache_page_release(nfs_readdir_descriptor_t *desc)
   720	{
   721		nfs_readdir_clear_array(desc->page);
 > 722		page_put(desc->page);
(Continue reading)

Richard Weinberger | 1 May 22:21 2016

Re: [PATCH] hostfs: fix opening file with overlayfs

CC'ing VFS folks

Am 01.05.2016 um 11:02 schrieb Toshikuni Fukaya:
> If a file on overlayfs using hostfs as a lowerdir is opened, it would
> be failed by ENOENT because hostfs resolves a host path by a host root
> path stored on the hostfs superblock referred by file->f_path.dentry,
> but it is replaced with overlayfs's one starting from the
> commit 4bacc9c9234c ("overlayfs: Make f_path always point to the
> overlay and f_inode to the underlay").
> We replace using file->f_path.dentry directly with calling
> "file_dentry" from a commit d101a125954e ("fs: add file_dentry()") to
> fix the issue.

Is there a reason why not all instances of file->f_path.dentry have
been replaced by file_dentry()?
I smell more fallout...


> Signed-off-by: Toshikuni Fukaya <toshiq2 <at>>
> ---
>  fs/hostfs/hostfs_kern.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
> index 7016653..26a9f43 100644
> --- a/fs/hostfs/hostfs_kern.c
> +++ b/fs/hostfs/hostfs_kern.c
(Continue reading)

Jeff Layton | 30 Apr 23:05 2016

Re: [RFC][PATCH 0/6] Enhanced file stat system call

On Fri, 2016-04-29 at 13:57 +0100, David Howells wrote:
> Implement a new system call to provide enhanced file stats.  The patches can
> be found here:
> ===========
> ===========
> The first patch provides this new system call:
> 	long ret = statx(int dfd,
> 			 const char *filename,
> 			 unsigned atflag,
> 			 unsigned mask,
> 			 struct statx *buffer);
> This is an enhanced file stat function that provides a number of useful
> features, in summary:
>  (1) More information: creation time, data version number, inode generation
>      number and flags.  A subset of these is available through a number of
>      filesystems (such as CIFS, NFS, AFS, Ext4 and BTRFS).
>  (2) Lightweight stat (AT_NO_ATTR_SYNC): Ask for just those details of
>      interest, and allow a network fs to approximate anything not of
>      interest, without going to the server.
(Continue reading)

Muhammad Falak R Wani | 30 Apr 22:09 2016

[PATCH] vfs: use RCU_INIT_POINTER when NULLing

It is always safe to use RCU_INIT_POINTER to NULL a pointer. This
results in slightly smaller/faster code.

The following semantic patch used:
 <at>  <at> 
 <at>  <at> 
- rcu_assign_pointer
  (..., NULL)


Signed-off-by: Muhammad Falak R Wani <falakreyaz <at>>
 fs/file.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/file.c b/fs/file.c
index 1fbc5c0..e027b33 100644
--- a/fs/file.c
+++ b/fs/file.c
 <at>  <at>  -543,7 +543,7  <at>  <at>  repeat:
 	/* Sanity check */
 	if (rcu_access_pointer(fdt->fd[fd]) != NULL) {
 		printk(KERN_WARNING "alloc_fd: slot %d not NULL!\n", fd);
-		rcu_assign_pointer(fdt->fd[fd], NULL);
+		RCU_INIT_POINTER(fdt->fd[fd], NULL);
(Continue reading)

Greg Kroah-Hartman | 30 Apr 19:02 2016

Re: [PATCH 3/5] kernfs: Switch to generic xattr handlers

On Fri, Apr 29, 2016 at 04:18:35PM +0200, Andreas Gruenbacher wrote:
> Unlike with most other filesystems, xattrs in kernfs are attached to the
> dentries (dentry->d_fsdata).  Once security modules start calling get
> xattr handlers with a NULL dentry (because of an unknown dentry), we'll
> have to start check for that in kernfs_xattr_get.
> Signed-off-by: Andreas Gruenbacher <agruenba <at>>
> Cc: Greg Kroah-Hartman <gregkh <at>>

Note, I'm not the only maintainer of kernfs...

	Acked-by: Greg Kroah-Hartman <gregkh <at>>

To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo <at>
More majordomo info at

Jeff Layton | 30 Apr 15:15 2016

Re: parallel lookups on NFS

On Fri, 2016-04-29 at 08:58 +0100, Al Viro wrote:
> On Sun, Apr 24, 2016 at 08:18:35PM +0100, Al Viro wrote:
> > 
> > What we get out of that is fully parallel
> > lookup/readdir/sillyunlink - all
> > exclusion is on per-name basis (nfs_prime_dcache() vs. nfs_lookup()
> > vs.
> > nfs_do_call_unlink()).  It will require a bit of care in
> > atomic_open(),
> > though...
> > 
> > I'll play with that a bit and see what can be done...
> OK, a bunch of atomic_open cleanups (moderately tested) +
> almost untested sillyunlink patch are in vfs.git#untested.nfs.
> It ought to make lookups (and readdir, and !O_CREAT case of
> atomic_open)
> on NFS really execute in parallel.  Folks, please hit that sucker
> with
> NFS torture tests.  In particular, the stuff mentioned in commit
> 565277f6 would be interesting to try.

I pulled down the branch and built it, and then ran the cthon special
tests 100 times in a loop, and ran "ls -l" on the test directory in a
loop at the same time. On pass 42, I hit this:

[ 1168.630763] general protection fault: 0000 [#1] SMP 
[ 1168.631617] Modules linked in: rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache xfs
snd_hda_codec_generic snd_hda_intel snd_hda_codec libcrc32c snd_hda_core snd_hwdep snd_seq
(Continue reading)

Goldwyn Rodrigues | 29 Apr 21:09 2016

Re: [PoC 2/7] Add kobject to super_block

On 04/28/2016 09:26 PM, Al Viro wrote:
> On Thu, Apr 28, 2016 at 09:01:17PM -0500, Goldwyn Rodrigues wrote:
>>  <at>  <at>  -167,7 +204,8  <at>  <at>  static void destroy_super(struct super_block *s)
>>   	WARN_ON(!list_empty(&s->s_mounts));
>>   	kfree(s->s_subtype);
>>   	kfree(s->s_options);
>> -	call_rcu(&s->rcu, destroy_super_rcu);
>> +	if (s->s_type->fs_flags & FS_CREATE_SYSFS)
>> +		kobject_del(&s->s_kobj);
> So we have kobject_del() under a spinlock.  Wonderful...  Better yet,
> you have the sodding kobjects sitting around well past the point when
> the filesystem driver has gone through rmmod.
> sysfs: lifetime rules made simple.  So simple that they don't fit a lot of
> situations, but hey - it sure *looks* easy to use...
> NAK.  If you want a description of super_block life cycle, I can describe it
> to you.  But please, don't play with it until you understand it.

Yes, I understand what you are trying to say. Using kobject to destroy 
super_block does not make sense in the current scenario.

Thanks for your feedback.


(Continue reading)