Re: [PATCH] minix: v3 super-block does not have s_state field

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2011-07-12 at 17:50 +0200, Sami Kerola wrote:
> Originally attempt was to use minix definitions and file system
> structures from linux/minix_fs.h, but that failed at first try.
> 
> mkfs.minix.c:164:10: error: no member named 's_state' in 'struct
>       minix3_super_block'
>                 Super3.s_state |= MINIX_VALID_FS;
>                 ~~~~~~ ^
> mkfs.minix.c:165:10: error: no member named 's_state' in 'struct
>       minix3_super_block'
>                 Super3.s_state &= ~MINIX_ERROR_FS;
> 
> Primary reason seems to be that the minix3 super-block does not
> have s_state field. And it looks to me that it has never had it.
> Further details about s_state can be found from minix v3 file
> system support kernel patch.

Yes, you are right. It was dropped during time for v3, but previous
versions still use it.

> 
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=939b00df0306bc4b5cd25c3c3c78e89b91e72fc8
> 
> Former minix disk s_state is now in kernel memory super-block
> info structure as a s_mount_state field, if someone wonders what
> happen to it.

I don't think we should always rely on having the kernel headers, that's
why the fallback is provided.

> 
> Issue appeared commit a2657ae3ffb56616ac9c921886bcca8ef242499f
> (13 days ago), and hopefully not too many users where affected as
> I am not sure how bad it is to have mismatch in super-block
> structure.

It can be quite bad depending on the mismatch, in this case the kernel
skips the s_state when using v3.

I think with this patch we address the issue without removing our
fallback.

From: Davidlohr Bueso <dave@xxxxxxx>
Date: Tue, 12 Jul 2011 23:55:14 -0400
Subject: [PATCH] minix: remove fs state

For v3 minix superblocks the state flag (s_state) has been removed, so drop it from the structure in accordance with the kernel's representation.

Reported-by: Sami Kerola <kerolasa@xxxxxx>
Signed-off-by: Davidlohr Bueso <dave@xxxxxxx>
---
 disk-utils/minix.h      |    1 -
 disk-utils/mkfs.minix.c |    7 ++-----
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/disk-utils/minix.h b/disk-utils/minix.h
index fc1d1c0..a13a2a4 100644
--- a/disk-utils/minix.h
+++ b/disk-utils/minix.h
@@ -62,7 +62,6 @@ struct minix3_super_block {
 	u16 s_pad2;
 	u16 s_blocksize;
 	u8  s_disk_version;
-        u16 s_state;
 };
 
 #define BLOCK_SIZE_BITS 10
diff --git a/disk-utils/mkfs.minix.c b/disk-utils/mkfs.minix.c
index 916dd17..06d087e 100644
--- a/disk-utils/mkfs.minix.c
+++ b/disk-utils/mkfs.minix.c
@@ -160,11 +160,8 @@ static void check_mount(void) {
 static void super_set_state(void)
 {
 	switch (fs_version) {
-	case 3:
-		Super3.s_state |= MINIX_VALID_FS;
-		Super3.s_state &= ~MINIX_ERROR_FS;
-		break;
-	default:
+	case 1:
+	case 2:
 		Super.s_state |= MINIX_VALID_FS;
 		Super.s_state &= ~MINIX_ERROR_FS;
 		break;
-- 
1.7.4.1


--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux