Jan Engelhardt:
> >"Hans-Peter Jansen":
> >> au_xino_create:659:mount[7044]: xino doesn't support /tmp/.aufs.xino(xfs)
> >>
> >> Hmm, /tmp is xfs
> >
> >Correct.
> >Aufs2 rejects placing XINO files on XFS while aufs1 allowed it.
>
> Why exactly is that?

Because XFS doesn't maintain some necessary attributes for XINO.
I hope these comments and the commit log in 2008 will be the answer for
you.


J. R. Okajima

(from fs/aufs/fstype.h)
----------------------------------------------------------------------
/*
 * filesystems which don't maintain i_size or i_blocks.
 */
static inline int au_test_fs_bad_iattr_size(struct super_block *sb)
{
        return au_test_xfs(sb)
                || au_test_ubifs(sb)
                || au_test_hfsplus(sb)  /* maintained, but incorrect */
                /* || au_test_ext4(sb) */       /* untested */
                /* || au_test_ocfs2(sb) */      /* untested */
                /* || au_test_ocfs2_dlmfs(sb) */ /* untested */
                /* || au_test_sysv(sb) */       /* untested */
                /* || au_test_minix(sb) */      /* untested */
                ;
}
        :::
/*
 * the filesystem where the xino files placed must support i/o after unlink and
 * maintain i_size and i_blocks.
 */
static inline int au_test_fs_bad_xino(struct super_block *sb)
{
        return au_test_fs_remote(sb)
                || au_test_fs_bad_iattr_size(sb)
#ifdef CONFIG_AUFS_BR_RAMFS
                || !(au_test_ramfs(sb) || au_test_fs_null_nd(sb))
#else
                || !au_test_fs_null_nd(sb) /* to keep xino code simple */
#endif
                /* don't want unnecessary work for xino */
                || au_test_aufs(sb)
                || au_test_ecryptfs(sb);
}
----------------------------------------------------------------------

commit 222096ae7f7616caa9e4150948096160cc8a8141
Author: Christoph Hellwig <h...@infradead.org>
Date:   Tue Feb 5 12:13:46 2008 +1100

    [XFS] stop updating inode->i_blocks
  
    The VFS doesn't use i_blocks, it's only used by generic_fillattr and the
    generic quota code which XFS doesn't use. In XFS there is one use to check
    whether we have an inline or out of line sumlink, but we can replace that
    with a check of the XFS_IFINLINE inode flag.

------------------------------------------------------------------------------

Reply via email to