[PATCH 0/4] xfs: online relabeling [RFC]
Eric Sandeen
sandeen at sandeen.net
Fri Jun 10 13:12:39 CDT 2016
On 6/10/16 11:41 AM, Darrick J. Wong wrote:
> On Fri, Jun 10, 2016 at 08:19:36AM -0400, Brian Foster wrote:
>> On Thu, Jun 09, 2016 at 11:51:12AM -0500, Eric Sandeen wrote:
>>>
>>>
>>> On 6/9/16 11:36 AM, Eric Sandeen wrote:
>>>> Ok, this more or less works; not really up to snuff
>>>> for submission or merging, just sketching it out, but some
>>>> questions first:
>>>>
>>>> 1) Is there really any point to this? :) We did have one
>>>> request, and btrfs can do it ...
>>>>
>>
>> Seems reasonable to me. Any details on the use case for the request?
>>
>>>> 2) Is using m_growlock horrible? growfs is the only other
>>>> thing that writes all supers, so I grabbed it. We don't
>>>> want multiple relabels stepping on each other.
>>>>
>>>> 3) Is there some way to actually force the primary to disk?
>>>> Right now the label change isn't actually visible on the
>>>> primary until unmount, which defeats the purpose. I'm not
>>>> sure if there's a straightforward/safe way to make it
>>>> visible...
>>>
>>
>>> Oh, sorry - I guess it is getting written out, but it's only
>>> available via an O_DIRECT read from userspace; it's not
>>> invalidating the cache.
>>>
>>> # io/xfs_io -c "label derp" /mnt/test
>>> label = "derp"
>>>
>>> # dd if=/dev/sdb2 bs=512 count=1 | hexdump -C
>>> ...
>>> 00000060 00 00 0a 00 b4 e5 02 00 02 00 00 08 66 6f 6f 00 |............foo.|
>>> ...
>>>
>>> # dd if=/dev/sdb2 iflag=direct bs=512 count=1 | hexdump -C
>>> ...
>>> 00000060 00 00 0a 00 b4 e5 02 00 02 00 00 08 64 65 72 70 |............derp|
>>> ...
>>>
>>> # dd if=/dev/sdb2 bs=512 count=1 | hexdump -C
>>> ...
>>> 00000060 00 00 0a 00 b4 e5 02 00 02 00 00 08 66 6f 6f 00 |............foo.|
>>> ...
>>>
>>> Guess I need to think about this some more.
>>>
>>
>> Isn't this to be expected? You're directly accessing the block device of
>> a mounted filesystem. I would think this is expected behavior, so long
>> as the set/get interfaces through the fs are consistent.
>
> Trouble is, I bet blkid prints LABEL=foo here and not LABEL=derp as
> the admin is probably expecting.
exactly.
And FWIW, when btrfs does it, it *is* visible.
> /me wonders if invalidate_inode_pages2_range here would help?
Um, not sure. Calling that against metadata from xfs feels a bit
bizarre...
-Eric
More information about the xfs
mailing list