[XFS updates] XFS development tree branch, master, updated. v3.7-rc1-70-g1813dd6
xfs at oss.sgi.com
xfs at oss.sgi.com
Thu Nov 15 21:50:02 CST 2012
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "XFS development tree".
The branch, master has been updated
1813dd6 xfs: convert buffer verifiers to an ops structure.
b0f539d xfs: connect up write verifiers to new buffers
612cfbf xfs: add pre-write metadata buffer verifier callbacks
cfb0285 xfs: add buffer pre-write callback
da6958c xfs: Add verifiers to dir2 data readahead.
d9392a4 xfs: add xfs_da_node verification
ad14c33 xfs: factor and verify attr leaf reads
e6f7667 xfs: factor dir2 leaf read
e481357 xfs: factor out dir2 data block reading
2025207 xfs: factor dir2 free block reading
82025d7 xfs: verify dir2 block format buffers
20f7e9f xfs: factor dir2 block read operations
4bb20a8 xfs: add verifier callback to directory read code
c631919 xfs: verify dquot blocks as they are read from disk
3d3e6f6 xfs: verify btree blocks as they are read from disk
af133e8 xfs: verify inode buffers as they are read from disk
bb80c6d xfs: verify AGFL blocks as they are read from disk
3702ce6 xfs: verify AGI blocks as they are read from disk
5d5f527 xfs: verify AGF blocks as they are read from disk
9802182 xfs: verify superblocks as they are read from disk
eab4e63 xfs: uncached buffer reads need to return an error
c3f8fc7 xfs: make buffer read verication an IO completion function
from fb59581404ab7ec5075299065c22cb211a9262a9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 1813dd64057490e7a0678a885c4fe6d02f78bdc1
Author: Dave Chinner <dchinner at redhat.com>
Date: Wed Nov 14 17:54:40 2012 +1100
xfs: convert buffer verifiers to an ops structure.
To separate the verifiers from iodone functions and associate read
and write verifiers at the same time, introduce a buffer verifier
operations structure to the xfs_buf.
This avoids the need for assigning the write verifier, clearing the
iodone function and re-running ioend processing in the read
verifier, and gets rid of the nasty "b_pre_io" name for the write
verifier function pointer. If we ever need to, it will also be
easier to add further content specific callbacks to a buffer with an
ops structure in place.
We also avoid needing to export verifier functions, instead we
can simply export the ops structures for those that are needed
outside the function they are defined in.
This patch also fixes a directory block readahead verifier issue
it exposed.
This patch also adds ops callbacks to the inode/alloc btree blocks
initialised by growfs. These will need more work before they will
work with CRCs.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit b0f539de9fcc543a3ffa40bc22bf51aca6ea6183
Author: Dave Chinner <dchinner at redhat.com>
Date: Wed Nov 14 17:53:49 2012 +1100
xfs: connect up write verifiers to new buffers
Metadata buffers that are read from disk have write verifiers
already attached to them, but newly allocated buffers do not. Add
appropriate write verifiers to all new metadata buffers.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Ben Myers <bpm at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 612cfbfe174a89d565363fff7f3961a2dda5fb71
Author: Dave Chinner <dchinner at redhat.com>
Date: Wed Nov 14 17:52:32 2012 +1100
xfs: add pre-write metadata buffer verifier callbacks
These verifiers are essentially the same code as the read verifiers,
but do not require ioend processing. Hence factor the read verifier
functions and add a new write verifier wrapper that is used as the
callback.
This is done as one large patch for all verifiers rather than one
patch per verifier as the change is largely mechanical. This
includes hooking up the write verifier via the read verifier
function.
Hooking up the write verifier for buffers obtained via
xfs_trans_get_buf() will be done in a separate patch as that touches
code in many different places rather than just the verifier
functions.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Mark Tinguely <tinguely at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit cfb02852226aa449fe27075caffe88726507668c
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:19 2012 +1100
xfs: add buffer pre-write callback
Add a callback to the buffer write path to enable verification of
the buffer and CRC calculation prior to issuing the write to the
underlying storage.
If the callback function detects some kind of failure or error
condition, it must mark the buffer with an error so that the caller
can take appropriate action. In the case of xfs_buf_ioapply(), a
corrupt metadta buffer willt rigger a shutdown of the filesystem,
because something is clearly wrong and we can't allow corrupt
metadata to be written to disk.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit da6958c873ecd846d71fafbfe0f6168bb9c2c99e
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:18 2012 +1100
xfs: Add verifiers to dir2 data readahead.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit d9392a4bb75503fc2adbb5237c3df940c6467eb2
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:17 2012 +1100
xfs: add xfs_da_node verification
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit ad14c33ac862601c4c22755ed3b59f1906b134e5
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:16 2012 +1100
xfs: factor and verify attr leaf reads
Some reads are not converted yet because it isn't obvious ahead of
time what the format of the block is going to be. Need to determine
how to tell if the first block in the tree is a node or leaf format
block. That will be done in later patches.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit e6f7667c4eef42b6f5bc6cdeb31d0bab62fe5f79
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:15 2012 +1100
xfs: factor dir2 leaf read
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit e4813572640e27d3a5cce3f06751a9f54f77aaa5
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:14 2012 +1100
xfs: factor out dir2 data block reading
And add a verifier callback function while there.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 2025207ca6738a1217126ef14af9d104433f9824
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:13 2012 +1100
xfs: factor dir2 free block reading
Also factor out the updating of the free block when removing entries
from leaf blocks, and add a verifier callback for reads.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 82025d7f79148fe66a1594a0ebe4ab38152cf9e6
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:12 2012 +1100
xfs: verify dir2 block format buffers
Add a dir2 block format read verifier. To fully verify every block
when read, call xfs_dir2_data_check() on them. Change
xfs_dir2_data_check() to do runtime checking, convert ASSERT()
checks to XFS_WANT_CORRUPTED_RETURN(), which will trigger an ASSERT
failure on debug kernels, but on production kernels will dump an
error to dmesg and return EFSCORRUPTED to the caller.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 20f7e9f3726a27cccade65c28265eef8ca50eecb
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:11 2012 +1100
xfs: factor dir2 block read operations
In preparation for verifying dir2 block format buffers, factor
the read operations out of the block operations (lookup, addname,
getdents) and some of the additional logic to make it easier to
understand an dmodify the code.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Ben Myers <bpm at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 4bb20a83a2a5ac4dcb62780c9950e47939956126
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:10 2012 +1100
xfs: add verifier callback to directory read code
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit c6319198702350a2215a8c0cacd6cc4283728a1b
Author: Dave Chinner <dchinner at redhat.com>
Date: Wed Nov 14 17:50:13 2012 +1100
xfs: verify dquot blocks as they are read from disk
Add a dquot buffer verify callback function and pass it into the
buffer read functions. This checks all the dquots in a buffer, but
cannot completely verify the dquot ids are correct. Also, errors
cannot be repaired, so an additional function is added to repair bad
dquots in the buffer if such an error is detected in a context where
repair is allowed.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 3d3e6f64e22c94115d47de670611bcd3ecda3796
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:08 2012 +1100
xfs: verify btree blocks as they are read from disk
Add an btree block verify callback function and pass it into the
buffer read functions. Because each different btree block type
requires different verification, add a function to the ops structure
that is called from the generic code.
Also, propagate the verification callback functions through the
readahead functions, and into the external bmap and bulkstat inode
readahead code that uses the generic btree buffer read functions.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit af133e8606d32c2aed43870491ebbdc56feec8a8
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:07 2012 +1100
xfs: verify inode buffers as they are read from disk
Add an inode buffer verify callback function and pass it into the
buffer read functions. Inodes are special in that the verbose checks
will be done when reading the inode, but we still need to sanity
check the buffer when that is first read. Always verify the magic
numbers in all inodes in the buffer, rather than jus ton debug
kernels.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit bb80c6d79a3b0f9b6c3236a4bec021c72615bfd1
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:06 2012 +1100
xfs: verify AGFL blocks as they are read from disk
Add an AGFL block verify callback function and pass it into the
buffer read functions.
While this commit adds verification code to the AGFL, it cannot be
used reliably until the CRC format change comes along as mkfs does
not initialise the full AGFL. Hence it can be full of garbage at the
first mount and will fail verification right now. CRC enabled
filesystems won't have this problem, so leave the code that has
already been written ifdef'd out until the proper time.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 3702ce6ed71cd60451ab278088863456dcb0dd99
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:05 2012 +1100
xfs: verify AGI blocks as they are read from disk
Add an AGI block verify callback function and pass it into the
buffer read functions. Remove the now redundant verification code
that is currently in use.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 5d5f527d13369d0047d52b7ac4ddee4f8c0ad173
Author: Dave Chinner <dchinner at redhat.com>
Date: Wed Nov 14 17:44:56 2012 +1100
xfs: verify AGF blocks as they are read from disk
Add an AGF block verify callback function and pass it into the
buffer read functions. This replaces the existing verification that
is done after the read completes.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Mark Tinguely <tinguely at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 98021821a502db347bd9c7671beeee6e8ce07ea6
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:03 2012 +1100
xfs: verify superblocks as they are read from disk
Add a superblock verify callback function and pass it into the
buffer read functions. Remove the now redundant verification code
that is currently in use.
Adding verification shows that secondary superblocks never have
their "sb_inprogress" flag cleared by mkfs.xfs, so when validating
the secondary superblocks during a grow operation we have to avoid
checking this field. Even if we fix mkfs, we will still have to
ignore this field for verification purposes unless a version of mkfs
that does not have this bug was used.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit eab4e63368b4cfa597dbdac66d1a7a836a693b7d
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:02 2012 +1100
xfs: uncached buffer reads need to return an error
With verification being done as an IO completion callback, different
errors can be returned from a read. Uncached reads only return a
buffer or NULL on failure, which means the verification error cannot
be returned to the caller.
Split the error handling for these reads into two - a failure to get
a buffer will still return NULL, but a read error will return a
referenced buffer with b_error set rather than NULL. The caller is
responsible for checking the error state of the buffer returned.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit c3f8fc73ac97b76a12692088ef9cace9af8422c0
Author: Dave Chinner <dchinner at redhat.com>
Date: Mon Nov 12 22:54:01 2012 +1100
xfs: make buffer read verication an IO completion function
Add a verifier function callback capability to the buffer read
interfaces. This will be used by the callers to supply a function
that verifies the contents of the buffer when it is read from disk.
This patch does not provide callback functions, but simply modifies
the interfaces to allow them to be called.
The reason for adding this to the read interfaces is that it is very
difficult to tell fom the outside is a buffer was just read from
disk or whether we just pulled it out of cache. Supplying a callbck
allows the buffer cache to use it's internal knowledge of the buffer
to execute it only when the buffer is read from disk.
It is intended that the verifier functions will mark the buffer with
an EFSCORRUPTED error when verification fails. This allows the
reading context to distinguish a verification error from an IO
error, and potentially take further actions on the buffer (e.g.
attempt repair) based on the error reported.
Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Phil White <pwhite at sgi.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
-----------------------------------------------------------------------
Summary of changes:
fs/xfs/xfs_ag.h | 4 +
fs/xfs/xfs_alloc.c | 140 ++++++++++++---
fs/xfs/xfs_alloc.h | 3 +
fs/xfs/xfs_alloc_btree.c | 77 ++++++++
fs/xfs/xfs_alloc_btree.h | 2 +
fs/xfs/xfs_attr.c | 85 +++------
fs/xfs/xfs_attr_leaf.c | 106 +++++++----
fs/xfs/xfs_attr_leaf.h | 6 +
fs/xfs/xfs_bmap.c | 62 ++++---
fs/xfs/xfs_bmap_btree.c | 63 +++++++
fs/xfs/xfs_bmap_btree.h | 1 +
fs/xfs/xfs_btree.c | 78 ++++----
fs/xfs/xfs_btree.h | 11 +-
fs/xfs/xfs_buf.c | 59 ++++--
fs/xfs/xfs_buf.h | 27 ++-
fs/xfs/xfs_da_btree.c | 135 +++++++++++---
fs/xfs/xfs_da_btree.h | 10 +-
fs/xfs/xfs_dir2_block.c | 436 ++++++++++++++++++++++++++-------------------
fs/xfs/xfs_dir2_data.c | 170 ++++++++++++++----
fs/xfs/xfs_dir2_leaf.c | 172 ++++++++++++------
fs/xfs/xfs_dir2_node.c | 288 +++++++++++++++++++-----------
fs/xfs/xfs_dir2_priv.h | 19 +-
fs/xfs/xfs_dquot.c | 134 +++++++++++---
fs/xfs/xfs_dquot.h | 2 +
fs/xfs/xfs_file.c | 4 +-
fs/xfs/xfs_fsops.c | 38 ++--
fs/xfs/xfs_ialloc.c | 74 +++++---
fs/xfs/xfs_ialloc.h | 4 +-
fs/xfs/xfs_ialloc_btree.c | 55 ++++++
fs/xfs/xfs_ialloc_btree.h | 2 +
fs/xfs/xfs_inode.c | 131 +++++++++-----
fs/xfs/xfs_inode.h | 1 +
fs/xfs/xfs_itable.c | 3 +-
fs/xfs/xfs_log.c | 3 +-
fs/xfs/xfs_log_recover.c | 13 +-
fs/xfs/xfs_mount.c | 130 ++++++++++----
fs/xfs/xfs_mount.h | 4 +-
fs/xfs/xfs_qm.c | 6 +-
fs/xfs/xfs_rtalloc.c | 15 +-
fs/xfs/xfs_trans.h | 19 +-
fs/xfs/xfs_trans_buf.c | 9 +-
fs/xfs/xfs_vnodeops.c | 2 +-
42 files changed, 1820 insertions(+), 783 deletions(-)
hooks/post-receive
--
XFS development tree
More information about the xfs
mailing list