android_kernel_oneplus_msm8998/fs/xfs
Darrick J. Wong f00ebf4f84 xfs: don't fail when converting shortform attr to long form during ATTR_REPLACE
commit 7b38460dc8e4eafba06c78f8e37099d3b34d473c upstream.

Kanda Motohiro reported that expanding a tiny xattr into a large xattr
fails on XFS because we remove the tiny xattr from a shortform fork and
then try to re-add it after converting the fork to extents format having
not removed the ATTR_REPLACE flag.  This fails because the attr is no
longer present, causing a fs shutdown.

This is derived from the patch in his bug report, but we really
shouldn't ignore a nonzero retval from the remove call.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199119
Reported-by: kanda.motohiro@gmail.com
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Cc: Ben Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-26 09:42:52 +01:00
..
libxfs xfs: don't fail when converting shortform attr to long form during ATTR_REPLACE 2019-01-26 09:42:52 +01:00
Kconfig
kmem.c xfs: remove kmem_zalloc_greedy 2017-10-08 10:14:20 +02:00
kmem.h xfs: remove kmem_zalloc_greedy 2017-10-08 10:14:20 +02:00
Makefile
mrlock.h
uuid.c
uuid.h
xfs.h
xfs_acl.c posix_acl: Clear SGID bit when setting file permissions 2016-10-31 04:13:58 -06:00
xfs_acl.h
xfs_aops.c xfs: ubsan fixes 2018-02-03 17:04:29 +01:00
xfs_aops.h
xfs_attr.h xfs: only return -errno or success from attr ->put_listent 2017-06-07 12:06:03 +02:00
xfs_attr_inactive.c
xfs_attr_list.c xfs: only return -errno or success from attr ->put_listent 2017-06-07 12:06:03 +02:00
xfs_bmap_util.c xfs: bad assertion for delalloc an extent that start at i_size 2017-06-07 12:06:02 +02:00
xfs_bmap_util.h
xfs_buf.c xfs: fix up quotacheck buffer list error handling 2017-06-07 12:06:02 +02:00
xfs_buf.h xfs: fix up quotacheck buffer list error handling 2017-06-07 12:06:02 +02:00
xfs_buf_item.c
xfs_buf_item.h
xfs_dir2_readdir.c xfs: prevent multi-fsb dir readahead from reading random blocks 2017-06-07 12:06:02 +02:00
xfs_discard.c Force log to disk before reading the AGF during a fstrim 2018-05-30 07:49:07 +02:00
xfs_discard.h
xfs_dquot.c
xfs_dquot.h
xfs_dquot_item.c
xfs_dquot_item.h
xfs_error.c xfs: print name of verifier if it fails 2016-06-07 18:14:38 -07:00
xfs_error.h
xfs_export.c
xfs_export.h
xfs_extent_busy.c
xfs_extent_busy.h
xfs_extfree_item.c
xfs_extfree_item.h
xfs_file.c xfs: prevent creating negative-sized file via INSERT_RANGE 2018-05-16 10:06:48 +02:00
xfs_filestream.c
xfs_filestream.h
xfs_fsops.c
xfs_fsops.h
xfs_globals.c
xfs_icache.c xfs: update ag iterator to support wait on new inodes 2017-06-07 12:06:02 +02:00
xfs_icache.h xfs: update ag iterator to support wait on new inodes 2017-06-07 12:06:02 +02:00
xfs_icreate_item.c
xfs_icreate_item.h
xfs_inode.c xfs: skip stale inodes in xfs_iflush_cluster 2016-06-07 18:14:38 -07:00
xfs_inode.h xfs: support ability to wait on new inodes 2017-06-07 12:06:02 +02:00
xfs_inode_item.c
xfs_inode_item.h
xfs_ioctl.c xfs: in _attrlist_by_handle, copy the cursor back to userspace 2017-06-07 12:06:03 +02:00
xfs_ioctl.h
xfs_ioctl32.c
xfs_ioctl32.h
xfs_iomap.c
xfs_iomap.h
xfs_iops.c
xfs_iops.h
xfs_itable.c xfs: remove kmem_zalloc_greedy 2017-10-08 10:14:20 +02:00
xfs_itable.h
xfs_linux.h xfs: XFS_IS_REALTIME_INODE() should be false if no rt device present 2017-09-13 14:09:46 -07:00
xfs_log.c xfs: fix incorrect log_flushed on fsync 2018-06-13 16:15:27 +02:00
xfs_log.h
xfs_log_cil.c
xfs_log_priv.h
xfs_log_recover.c xfs: fix log block underflow during recovery cycle verification 2017-12-20 10:04:59 +01:00
xfs_message.c
xfs_message.h
xfs_mount.c
xfs_mount.h xfs: detect agfl count corruption and reset agfl 2018-06-06 16:46:20 +02:00
xfs_mru_cache.c
xfs_mru_cache.h
xfs_pnfs.c
xfs_pnfs.h
xfs_qm.c xfs: quota: check result of register_shrinker() 2018-03-03 10:19:44 +01:00
xfs_qm.h
xfs_qm_bhv.c
xfs_qm_syscalls.c xfs: wait on new inodes during quotaoff dquot release 2017-06-07 12:06:02 +02:00
xfs_quota.h
xfs_quotaops.c
xfs_rtalloc.c
xfs_rtalloc.h
xfs_stats.c
xfs_stats.h
xfs_super.c
xfs_super.h
xfs_symlink.c
xfs_symlink.h
xfs_sysctl.c
xfs_sysctl.h
xfs_sysfs.c
xfs_sysfs.h
xfs_trace.c
xfs_trace.h xfs: detect agfl count corruption and reset agfl 2018-06-06 16:46:20 +02:00
xfs_trans.c
xfs_trans.h
xfs_trans_ail.c
xfs_trans_buf.c
xfs_trans_dquot.c
xfs_trans_extfree.c
xfs_trans_inode.c
xfs_trans_priv.h
xfs_xattr.c Make __xfs_xattr_put_listen preperly report errors. 2017-06-14 13:16:27 +02:00