[PATCH 07/32] xfs: growfs: use uncached buffers for new headers
Rich Johnston
rjohnston at sgi.com
Tue Nov 13 15:18:46 CST 2012
On 11/12/2012 05:53 AM, Dave Chinner wrote:
> From: Dave Chinner <dchinner at redhat.com>
>
> When writing the new AG headers to disk, we can't attach write
> verifiers because they have a dependency on the struct xfs-perag
> being attached to the buffer to be fully initialised and growfs
> can't fully initialise them until later in the process.
>
> The simplest way to avoid this problem is to use uncached buffers
> for writing the new headers. These buffers don't have the xfs-perag
> attached to them, so it's simple to detect in the write verifier and
> be able to skip the checks that need the xfs-perag.
>
> This enables us to attach the appropriate buffer ops to the buffer
> and hence calculate CRCs on the way to disk. IT also means that the
> buffer is torn down immediately, and so the first access to the AG
> headers will re-read the header from disk and perform full
> verification of the buffer. This way we also can catch corruptions
> due to problems that went undetected in growfs.
>
> Signed-off-by: Dave Chinner <dchinner at redhat.com>
> ---
> fs/xfs/xfs_fsops.c | 63 ++++++++++++++++++++++++++++++++++------------------
> 1 file changed, 41 insertions(+), 22 deletions(-)
>
Looks good.
Reviewed-by Rich Johnston <rjohnston at sgi.com>
--Rich
More information about the xfs
mailing list