08.07.2016 23:15, Andrei Borzenkov пишет:
> 06.07.2016 14:36, Marcos Mello пишет:
>> Background:
>>
>> Kernel 4.3
>> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ce748eaa65f2e9392ba82726503c8d994ffd6393
>>
>> xfsprogs 4.2.0
>> http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/cmds/xfsprogs.git;a=commit;h=9c4e12fb60c15dc9c5e54041c9679454b42cb23e
>>
>> I am using Xubuntu 16.04, which has 2.02-beta2 plus XFSv5 patches (1570140,
>> a139188, d3ffeb9, b6e80c7, ff3c200, 049dcfa) backported.
>>
>> grub-install verbose output before "xfs_admin -U generate <dev>":
>>
> 
> This is due to XFS_SB_FEAT_INCOMPAT_META_UUID bit set. Jan, is it enough
> to add this bit to XFS_SB_FEAT_INCOMPAT_SUPPORTED or we need extra code
> to support it?
> 
> 

As far as I can tell we do not need any extra support (until we start
actually check metadata UUID).

@Marcos could you test this patch? Works for me.

@Jan any comment?


From: Andrei Borzenkov <[email protected]>
Subject: [PATCH] xfs: accept filesystem with meta_uuid

XFS V5 stores UUID in metadata and compares them with superblock UUID.
To allow changing of user-visible UUID it stores original value in new
superblock field (meta_uuid) and sets incompatible flag to indicate that
new field must be used to verify metadata. Our driver currently does not
check metadata UUID so simply accept such filesystem.

---
 grub-core/fs/xfs.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c
index ca9c0c3..9f66dd6 100644
--- a/grub-core/fs/xfs.c
+++ b/grub-core/fs/xfs.c
@@ -76,8 +76,13 @@ GRUB_MOD_LICENSE ("GPLv3+");
 
 /* incompat feature flags */
 #define XFS_SB_FEAT_INCOMPAT_FTYPE      (1 << 0)        /* filetype in dirent */
+#define XFS_SB_FEAT_INCOMPAT_SPINODES   (1 << 1)        /* sparse inode chunks */
+#define XFS_SB_FEAT_INCOMPAT_META_UUID  (1 << 2)        /* metadata UUID */
+
+/* We do not currently verify metadata UUID so it is safe to read such filesystem */
 #define XFS_SB_FEAT_INCOMPAT_SUPPORTED \
-	(XFS_SB_FEAT_INCOMPAT_FTYPE)
+	(XFS_SB_FEAT_INCOMPAT_FTYPE | \
+	 XFS_SB_FEAT_INCOMPAT_META_UUID)
 
 struct grub_xfs_sblock
 {
-- 
tg: (b524fa2..) u/xfs-meta_uuid (depends on: master)
_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to