Changes since last update:
- Minor code cleanups.
- Fix a superblock logging error.
- Ensure that collapse range converts the data fork to extents format
when necessary.
- Revert the ALLOC_USERDATA cleanup because it caused subtle
behavior regressions.
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEUzaAxoMeQq6m2jMV+H93GTRKtOsFAl2KR6oACgkQ+H93GTRK
tOvtVA//Q6iqCTYnvbIHgNMMP6WvD/qL/G1bTm+ql7KJEyd99PC6EATY3IW2DP2Q
gwj1VDid362eF65XiLoe/4zjhj1SmrpX92B9jDBt3n47sHLnDIjtT+54jo0n51xm
MW+79qPC1luT16pdgurkJo7jGrR5Zj5xcUlNj8qVfH9fD9ZAUu2+OzTD+iWn8qvu
L4geuMG2WKinxlfP6v4y5Fn7X9PiWM14N2N2p+N6ITuhdxyKch/EohI/P0syUcTJ
Ad1za0PFFI+BtI4F9kWWBgoGe0oCqCeU6xCGkK5HJ9XTPmJrlU6WKk5lQJs6T92z
OEAQfWkb/Yc7YbSP+CATH1vBIYQZzvhVXkHd0q1JBqhLOPeBnLhO/gVefjSDBgIq
KlYiGlCn3Rme28KNUX+o9/JAsOVpwnxL1GIUAu4v0V2GQQIx7G0WCykiMgRjl0sm
iCsarAev1eHPVsRWArdR1fFrOQ206tvMTz4zSREYVFMsHn0Zq3c9j3R78azMaUA6
tbAfPlp7p0M90u3uC4FrZHyPPu6VHLNuE82zAwi8oLD1kCO9wxluF5gRg1UVOiB5
Rp4Y/6BeO75039aZka7+5iQzzhiudezsXK138YGBx40nW+2nW2ZLWIc3Kkm2mGl3
aJ0xsMusAv2q/lVKyg7280EjlkPYcHLTkaZ9+hCkmd3A9jcb/l8=
=D/XD
-----END PGP SIGNATURE-----
Merge tag 'xfs-5.4-merge-8' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux
Pull xfs fixes from Darrick Wong:
"There are a couple of bug fixes and some small code cleanups that came
in recently:
- Minor code cleanups
- Fix a superblock logging error
- Ensure that collapse range converts the data fork to extents format
when necessary
- Revert the ALLOC_USERDATA cleanup because it caused subtle behavior
regressions"
* tag 'xfs-5.4-merge-8' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
xfs: avoid unused to_mp() function warning
xfs: log proper length of superblock
xfs: revert 1baa2800e6
("xfs: remove the unused XFS_ALLOC_USERDATA flag")
xfs: removed unneeded variable
xfs: convert inode to extent format after extent merge due to shift
This commit is contained in:
commit
2268419e4c
5 changed files with 17 additions and 21 deletions
|
@ -81,9 +81,10 @@ typedef struct xfs_alloc_arg {
|
|||
/*
|
||||
* Defines for datatype
|
||||
*/
|
||||
#define XFS_ALLOC_INITIAL_USER_DATA (1 << 0)/* special case start of file */
|
||||
#define XFS_ALLOC_USERDATA_ZERO (1 << 1)/* zero extent on allocation */
|
||||
#define XFS_ALLOC_NOBUSY (1 << 2)/* Busy extents not allowed */
|
||||
#define XFS_ALLOC_USERDATA (1 << 0)/* allocation is for user data*/
|
||||
#define XFS_ALLOC_INITIAL_USER_DATA (1 << 1)/* special case start of file */
|
||||
#define XFS_ALLOC_USERDATA_ZERO (1 << 2)/* zero extent on allocation */
|
||||
#define XFS_ALLOC_NOBUSY (1 << 3)/* Busy extents not allowed */
|
||||
|
||||
static inline bool
|
||||
xfs_alloc_is_userdata(int datatype)
|
||||
|
|
|
@ -4042,8 +4042,12 @@ xfs_bmapi_allocate(
|
|||
*/
|
||||
if (!(bma->flags & XFS_BMAPI_METADATA)) {
|
||||
bma->datatype = XFS_ALLOC_NOBUSY;
|
||||
if (whichfork == XFS_DATA_FORK && bma->offset == 0)
|
||||
bma->datatype |= XFS_ALLOC_INITIAL_USER_DATA;
|
||||
if (whichfork == XFS_DATA_FORK) {
|
||||
if (bma->offset == 0)
|
||||
bma->datatype |= XFS_ALLOC_INITIAL_USER_DATA;
|
||||
else
|
||||
bma->datatype |= XFS_ALLOC_USERDATA;
|
||||
}
|
||||
if (bma->flags & XFS_BMAPI_ZERO)
|
||||
bma->datatype |= XFS_ALLOC_USERDATA_ZERO;
|
||||
}
|
||||
|
@ -5621,6 +5625,11 @@ xfs_bmse_merge(
|
|||
if (error)
|
||||
return error;
|
||||
|
||||
/* change to extent format if required after extent removal */
|
||||
error = xfs_bmap_btree_to_extents(tp, ip, cur, logflags, whichfork);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
done:
|
||||
xfs_iext_remove(ip, icur, 0);
|
||||
xfs_iext_prev(XFS_IFORK_PTR(ip, whichfork), icur);
|
||||
|
|
|
@ -928,7 +928,7 @@ xfs_log_sb(
|
|||
|
||||
xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb);
|
||||
xfs_trans_buf_set_type(tp, bp, XFS_BLFT_SB_BUF);
|
||||
xfs_trans_log_buf(tp, bp, 0, sizeof(struct xfs_dsb));
|
||||
xfs_trans_log_buf(tp, bp, 0, sizeof(struct xfs_dsb) - 1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -97,7 +97,6 @@ xchk_allocbt_rec(
|
|||
xfs_agnumber_t agno = bs->cur->bc_private.a.agno;
|
||||
xfs_agblock_t bno;
|
||||
xfs_extlen_t len;
|
||||
int error = 0;
|
||||
|
||||
bno = be32_to_cpu(rec->alloc.ar_startblock);
|
||||
len = be32_to_cpu(rec->alloc.ar_blockcount);
|
||||
|
@ -109,7 +108,7 @@ xchk_allocbt_rec(
|
|||
|
||||
xchk_allocbt_xref(bs->sc, bno, len);
|
||||
|
||||
return error;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Scrub the freespace btrees for some AG. */
|
||||
|
|
|
@ -63,19 +63,6 @@ static const struct sysfs_ops xfs_sysfs_ops = {
|
|||
.store = xfs_sysfs_object_store,
|
||||
};
|
||||
|
||||
/*
|
||||
* xfs_mount kobject. The mp kobject also serves as the per-mount parent object
|
||||
* that is identified by the fsname under sysfs.
|
||||
*/
|
||||
|
||||
static inline struct xfs_mount *
|
||||
to_mp(struct kobject *kobject)
|
||||
{
|
||||
struct xfs_kobj *kobj = to_kobj(kobject);
|
||||
|
||||
return container_of(kobj, struct xfs_mount, m_kobj);
|
||||
}
|
||||
|
||||
static struct attribute *xfs_mp_attrs[] = {
|
||||
NULL,
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue