[PATCH 1/2] xfs_db: flush devices before exiting

Mark Tinguely tinguely at sgi.com
Tue Nov 13 11:45:30 CST 2012


On 11/09/12 01:02, Dave Chinner wrote:
> From: Dave Chinner<dchinner at redhat.com>
>
> Test 287 uses xfs_db to change 32-bit project ID support while the
> filesystem is unmounted. On a large filesystem the test was failing
> due to the mount not seeing the feature bit in the superblock.
>
> xfs_db uses a different address space to the filesystem when it is
> mounte dby the kernel, so the only way to keep them coherent is to
> ensure that all buffered data is written to disk before the other
> entity tries to read it. xfs_db uses buffered IO, but does not close
> the devices when it exits, thereby leaving changes it has written in
> the block device cache rather than on disk. Hence when th ekernel
> tries to mount the filesystem, it reads what is on disk and does not
> see xfs_db's changes.
>
> Fix this by ensuring that xfs_db flushes it's changes to disk before
> it exits by caling libxfs_device_close(). This fsyncs the data and
> flushes the caches to ensure that it is present on disk before
> xfs_db exits.
>
> Signed-off-by: Dave Chinner<dchinner at redhat.com>
> ---

Looks good. Consistent to mkfs.xfs and xfs_repair.

Reviewed-by: Mark Tinguely <tinguely at sgi.com>



More information about the xfs mailing list