Re: [PATCH 2/3] nbd: fsync and kill block device on shutdown

Paolo Bonzini
2013-02-13T13:06:00Z

Il 12/02/2013 22:41, Andrew Morton ha scritto:
>> > There are two problems with shutdown in the NBD driver. The first is
>> > that receiving the NBD_DISCONNECT ioctl does not sync the filesystem;
>> > this is useful because BLKFLSBUF is restricted to processes that have
>> > CAP_SYS_ADMIN, and the NBD client may not possess it (fsync of the
>> > block device does not sync the filesystem, either).
> hm, this says that the lack of a sync is "useful". I think you mean
> that the patch-which-adds-the-sync is the thing which is useful, yes?

Yes.

>> > The second is that once we clear the socket we have no guarantee that
>> > later reads will come from the same backing storage. Thus the page cache
>> > must be cleaned, lest reads that hit on the page cache will return stale
>> > data from the previously-accessible disk.
> That sounds like a problem.
>
>> > Example:
>> >
>> > # qemu-nbd -r -c/dev/nbd0 /dev/sr0
>> > # file -s /dev/nbd0
>> > /dev/stdin: # UDF filesystem data (version 1.5) etc.
>> > # qemu-nbd -d /dev/nbd0
>> > # qemu-nbd -r -c/dev/nbd0 /dev/sda
>> > # file -s /dev/nbd0
>> > /dev/stdin: # UDF filesystem data (version 1.5) etc.
>> >
>> > While /dev/sda has:
>> >
>> > # file -s /dev/sda
>> > /dev/sda: x86 boot sector; etc.
> OK, we've described the problems but there's no description here of how
> the patch addresses those problems.
>
> How does this look?

Perfect, thanks very much. I tried to similarly balance the "why" and
"how" in the new commit message for patch 1.

Paolo