Merge tag 'xfs-5.14-fixes-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux
Pull xfs fixes from Darrick Wong:
"This contains a bunch of bug fixes in XFS.
Dave and I have been busy the last couple of weeks to find and fix as
many log recovery bugs as we can find; here are the results so far. Go
fstests -g recoveryloop! ;)
- Fix a number of coordination bugs relating to cache flushes for
metadata writeback, cache flushes for multi-buffer log writes, and
FUA writes for single-buffer log writes
- Fix a bug with incorrect replay of attr3 blocks
- Fix unnecessary stalls when flushing logs to disk
- Fix spoofing problems when recovering realtime bitmap blocks"
* tag 'xfs-5.14-fixes-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
xfs: prevent spoofing of rtbitmap blocks when recovering buffers
xfs: limit iclog tail updates
xfs: need to see iclog flags in tracing
xfs: Enforce attr3 buffer recovery order
xfs: logging the on disk inode LSN can make it go backwards
xfs: avoid unnecessary waits in xfs_log_force_lsn()
xfs: log forces imply data device cache flushes
xfs: factor out forced iclog flushes
xfs: fix ordering violation between cache flushes and tail updates
xfs: fold __xlog_state_release_iclog into xlog_state_release_iclog
xfs: external logs need to flush data device
xfs: flush data dev on external log write
This commit is contained in:
@@ -411,7 +411,16 @@ struct xfs_log_dinode {
|
||||
/* start of the extended dinode, writable fields */
|
||||
uint32_t di_crc; /* CRC of the inode */
|
||||
uint64_t di_changecount; /* number of attribute changes */
|
||||
xfs_lsn_t di_lsn; /* flush sequence */
|
||||
|
||||
/*
|
||||
* The LSN we write to this field during formatting is not a reflection
|
||||
* of the current on-disk LSN. It should never be used for recovery
|
||||
* sequencing, nor should it be recovered into the on-disk inode at all.
|
||||
* See xlog_recover_inode_commit_pass2() and xfs_log_dinode_to_disk()
|
||||
* for details.
|
||||
*/
|
||||
xfs_lsn_t di_lsn;
|
||||
|
||||
uint64_t di_flags2; /* more random flags */
|
||||
uint32_t di_cowextsize; /* basic cow extent size for file */
|
||||
uint8_t di_pad2[12]; /* more padding for future expansion */
|
||||
|
||||
Reference in New Issue
Block a user