[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