]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Merge remote-tracking branch 'vfs/for-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Wed, 14 Apr 2021 01:22:24 +0000 (11:22 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 14 Apr 2021 01:22:24 +0000 (11:22 +1000)
# Conflicts:
# fs/btrfs/ioctl.c
# fs/overlayfs/file.c
# fs/xfs/xfs_ioctl.c

34 files changed:
1  2 
fs/afs/inode.c
fs/btrfs/ctree.h
fs/btrfs/inode.c
fs/btrfs/ioctl.c
fs/cifs/cifsproto.h
fs/cifs/dir.c
fs/cifs/file.c
fs/cifs/inode.c
fs/cifs/readdir.c
fs/ecryptfs/ecryptfs_kernel.h
fs/ext2/ext2.h
fs/ext2/namei.c
fs/ext4/ext4.h
fs/ext4/ioctl.c
fs/ext4/namei.c
fs/f2fs/f2fs.h
fs/f2fs/file.c
fs/f2fs/namei.c
fs/fuse/file.c
fs/fuse/fuse_i.h
fs/fuse/inode.c
fs/hostfs/hostfs_kern.c
fs/inode.c
fs/nfsd/nfsproc.c
fs/ocfs2/file.c
fs/overlayfs/file.c
fs/overlayfs/inode.c
fs/overlayfs/namei.c
fs/overlayfs/overlayfs.h
fs/overlayfs/readdir.c
fs/xfs/libxfs/xfs_fs.h
fs/xfs/xfs_ioctl.c
fs/xfs/xfs_iops.c
include/linux/fs.h

diff --cc fs/afs/inode.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc fs/cifs/dir.c
Simple merge
diff --cc fs/cifs/file.c
Simple merge
diff --cc fs/cifs/inode.c
Simple merge
Simple merge
Simple merge
diff --cc fs/ext2/ext2.h
Simple merge
diff --cc fs/ext2/namei.c
Simple merge
diff --cc fs/ext4/ext4.h
Simple merge
diff --cc fs/ext4/ioctl.c
Simple merge
diff --cc fs/ext4/namei.c
Simple merge
diff --cc fs/f2fs/f2fs.h
Simple merge
diff --cc fs/f2fs/file.c
Simple merge
diff --cc fs/f2fs/namei.c
Simple merge
diff --cc fs/fuse/file.c
Simple merge
Simple merge
diff --cc fs/fuse/inode.c
Simple merge
Simple merge
diff --cc fs/inode.c
Simple merge
Simple merge
diff --cc fs/ocfs2/file.c
Simple merge
index 6e454a2940469e715bf5f53c7e4ddf102cb13cd5,9bd4167cc7fb6138a22e90be491f00c735b40135..fd5054b7936c8030149120ed25b275014f21a61a
@@@ -716,11 -590,6 +610,7 @@@ const struct file_operations ovl_file_o
        .mmap           = ovl_mmap,
        .fallocate      = ovl_fallocate,
        .fadvise        = ovl_fadvise,
-       .unlocked_ioctl = ovl_ioctl,
 +      .flush          = ovl_flush,
- #ifdef CONFIG_COMPAT
-       .compat_ioctl   = ovl_compat_ioctl,
- #endif
        .splice_read    = generic_file_splice_read,
        .splice_write   = iter_file_splice_write,
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 708b77341a703fbf3aa462d7121ea92a8d6eb6be,bbda105a2ce504b4c3e46137ecb329bf9871abe9..1dff97bdc67d2c409ed6e6764c3740b2df247d10
@@@ -1056,76 -1057,16 +1057,18 @@@ xfs_ioc_ag_geometry
  static void
  xfs_fill_fsxattr(
        struct xfs_inode        *ip,
-       bool                    attr,
-       struct fsxattr          *fa)
+       int                     whichfork,
+       struct fileattr         *fa)
  {
-       struct xfs_ifork        *ifp = attr ? ip->i_afp : &ip->i_df;
 +      struct xfs_mount        *mp = ip->i_mount;
+       struct xfs_ifork        *ifp = XFS_IFORK_PTR(ip, whichfork);
  
-       simple_fill_fsxattr(fa, xfs_ip2xflags(ip));
+       fileattr_fill_xflags(fa, xfs_ip2xflags(ip));
 -      fa->fsx_extsize = ip->i_d.di_extsize << ip->i_mount->m_sb.sb_blocklog;
 -      fa->fsx_cowextsize = ip->i_d.di_cowextsize <<
 -                      ip->i_mount->m_sb.sb_blocklog;
 -      fa->fsx_projid = ip->i_d.di_projid;
 +
 +      fa->fsx_extsize = XFS_FSB_TO_B(mp, ip->i_extsize);
 +      if (ip->i_diflags2 & XFS_DIFLAG2_COWEXTSIZE)
 +              fa->fsx_cowextsize = XFS_FSB_TO_B(mp, ip->i_cowextsize);
 +      fa->fsx_projid = ip->i_projid;
        if (ifp && (ifp->if_flags & XFS_IFEXTENTS))
                fa->fsx_nextents = xfs_iext_count(ifp);
        else
@@@ -1212,10 -1167,10 +1169,10 @@@ static in
  xfs_ioctl_setattr_xflags(
        struct xfs_trans        *tp,
        struct xfs_inode        *ip,
-       struct fsxattr          *fa)
+       struct fileattr         *fa)
  {
        struct xfs_mount        *mp = ip->i_mount;
 -      uint64_t                di_flags2;
 +      uint64_t                i_flags2;
  
        /* Can't change realtime flag if any extents are allocated. */
        if ((ip->i_df.if_nextents || ip->i_delayed_blks) &&
@@@ -1348,8 -1289,11 +1291,11 @@@ xfs_ioctl_setattr_check_extsize
        xfs_extlen_t            size;
        xfs_fsblock_t           extsize_fsb;
  
+       if (!fa->fsx_valid)
+               return 0;
        if (S_ISREG(VFS_I(ip)->i_mode) && ip->i_df.if_nextents &&
 -          ((ip->i_d.di_extsize << mp->m_sb.sb_blocklog) != fa->fsx_extsize))
 +          ((ip->i_extsize << mp->m_sb.sb_blocklog) != fa->fsx_extsize))
                return -EINVAL;
  
        if (fa->fsx_extsize == 0)
@@@ -1520,18 -1476,18 +1478,19 @@@ xfs_fileattr_set
         * extent size hint should be set on the inode. If no extent size flags
         * are set on the inode then unconditionally clear the extent size hint.
         */
 -      if (ip->i_d.di_flags & (XFS_DIFLAG_EXTSIZE | XFS_DIFLAG_EXTSZINHERIT))
 -              ip->i_d.di_extsize = fa->fsx_extsize >> mp->m_sb.sb_blocklog;
 -      else
 -              ip->i_d.di_extsize = 0;
 -      if (xfs_sb_version_has_v3inode(&mp->m_sb) &&
 -          (ip->i_d.di_flags2 & XFS_DIFLAG2_COWEXTSIZE))
 -              ip->i_d.di_cowextsize = fa->fsx_cowextsize >>
 -                              mp->m_sb.sb_blocklog;
 +      if (ip->i_diflags & (XFS_DIFLAG_EXTSIZE | XFS_DIFLAG_EXTSZINHERIT))
 +              ip->i_extsize = XFS_B_TO_FSB(mp, fa->fsx_extsize);
        else
 -              ip->i_d.di_cowextsize = 0;
 +              ip->i_extsize = 0;
 +
 +      if (xfs_sb_version_has_v3inode(&mp->m_sb)) {
 +              if (ip->i_diflags2 & XFS_DIFLAG2_COWEXTSIZE)
 +                      ip->i_cowextsize = XFS_B_TO_FSB(mp, fa->fsx_cowextsize);
 +              else
 +                      ip->i_cowextsize = 0;
 +      }
  
+ skip_xattr:
        error = xfs_trans_commit(tp);
  
        /*
Simple merge
Simple merge