2015-01-15 10:30:43

by Jan Kara

[permalink] [raw]
Subject: Re: + ext2-get-rid-of-most-mentions-of-xip-in-ext2.patch added to -mm tree

On Mon 12-01-15 15:11:11, Andrew Morton wrote:
...
> diff -puN fs/ext2/ext2.h~ext2-get-rid-of-most-mentions-of-xip-in-ext2 fs/ext2/ext2.h
> --- a/fs/ext2/ext2.h~ext2-get-rid-of-most-mentions-of-xip-in-ext2
> +++ a/fs/ext2/ext2.h
> @@ -380,14 +380,15 @@ struct ext2_inode {
> #define EXT2_MOUNT_NO_UID32 0x000200 /* Disable 32-bit UIDs */
> #define EXT2_MOUNT_XATTR_USER 0x004000 /* Extended user attributes */
> #define EXT2_MOUNT_POSIX_ACL 0x008000 /* POSIX Access Control Lists */
> -#ifdef CONFIG_FS_DAX
> -#define EXT2_MOUNT_XIP 0x010000 /* Execute in place */
> -#else
> -#define EXT2_MOUNT_XIP 0
> -#endif
> +#define EXT2_MOUNT_XIP 0x010000 /* Obsolete, use DAX */
> #define EXT2_MOUNT_USRQUOTA 0x020000 /* user quota */
> #define EXT2_MOUNT_GRPQUOTA 0x040000 /* group quota */
> #define EXT2_MOUNT_RESERVATION 0x080000 /* Preallocation */
> +#ifdef CONFIG_FS_DAX
> +#define EXT2_MOUNT_DAX 0x100000 /* Direct Access */
> +#else
> +#define EXT2_MOUNT_DAX 0
> +#endif
Why do you define EXT2_MOUNT_DAX differently depending on CONFIG_FS_DAX?
That seems unnecessary...

...
> diff -puN fs/ext2/super.c~ext2-get-rid-of-most-mentions-of-xip-in-ext2 fs/ext2/super.c
> --- a/fs/ext2/super.c~ext2-get-rid-of-most-mentions-of-xip-in-ext2
> +++ a/fs/ext2/super.c
> @@ -294,6 +294,8 @@ static int ext2_show_options(struct seq_
> #ifdef CONFIG_FS_DAX
> if (sbi->s_mount_opt & EXT2_MOUNT_XIP)
> seq_puts(seq, ",xip");
> + if (sbi->s_mount_opt & EXT2_MOUNT_DAX)
> + seq_puts(seq, ",dax");
> #endif
>
> if (!test_opt(sb, RESERVATION))
So if someone mounts filesystem with -o xip, /proc/mounts will show both
'xip' and 'dax'. OK, probably makes sense.

Honza
--
Jan Kara <[email protected]>
SUSE Labs, CR


2015-01-16 21:09:06

by Matthew Wilcox

[permalink] [raw]
Subject: RE: + ext2-get-rid-of-most-mentions-of-xip-in-ext2.patch added to -mm tree

Ugh ... this works better from my linux.intel.com address ...

-----Original Message-----
From: Jan Kara [mailto:[email protected]]
Sent: Thursday, January 15, 2015 2:31 AM
To: Wilcox, Matthew R
Cc: [email protected]; Dilger, Andreas; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Subject: Re: + ext2-get-rid-of-most-mentions-of-xip-in-ext2.patch added to -mm tree

On Mon 12-01-15 15:11:11, Andrew Morton wrote:
...
> diff -puN fs/ext2/ext2.h~ext2-get-rid-of-most-mentions-of-xip-in-ext2 fs/ext2/ext2.h
> --- a/fs/ext2/ext2.h~ext2-get-rid-of-most-mentions-of-xip-in-ext2
> +++ a/fs/ext2/ext2.h
> @@ -380,14 +380,15 @@ struct ext2_inode {
> #define EXT2_MOUNT_NO_UID32 0x000200 /* Disable 32-bit UIDs */
> #define EXT2_MOUNT_XATTR_USER 0x004000 /* Extended user attributes */
> #define EXT2_MOUNT_POSIX_ACL 0x008000 /* POSIX Access Control Lists */
> -#ifdef CONFIG_FS_DAX
> -#define EXT2_MOUNT_XIP 0x010000 /* Execute in place */
> -#else
> -#define EXT2_MOUNT_XIP 0
> -#endif
> +#define EXT2_MOUNT_XIP 0x010000 /* Obsolete, use DAX */
> #define EXT2_MOUNT_USRQUOTA 0x020000 /* user quota */
> #define EXT2_MOUNT_GRPQUOTA 0x040000 /* group quota */
> #define EXT2_MOUNT_RESERVATION 0x080000 /* Preallocation */
> +#ifdef CONFIG_FS_DAX
> +#define EXT2_MOUNT_DAX 0x100000 /* Direct Access */
> +#else
> +#define EXT2_MOUNT_DAX 0
> +#endif
Why do you define EXT2_MOUNT_DAX differently depending on CONFIG_FS_DAX?
That seems unnecessary...

That's copied from the original XIP code. I think the intent is to make the XIP/DAX code disappear from the module, rather than being dead code cluttering up the object file.

...
> diff -puN fs/ext2/super.c~ext2-get-rid-of-most-mentions-of-xip-in-ext2 fs/ext2/super.c
> --- a/fs/ext2/super.c~ext2-get-rid-of-most-mentions-of-xip-in-ext2
> +++ a/fs/ext2/super.c
> @@ -294,6 +294,8 @@ static int ext2_show_options(struct seq_
> #ifdef CONFIG_FS_DAX
> if (sbi->s_mount_opt & EXT2_MOUNT_XIP)
> seq_puts(seq, ",xip");
> + if (sbi->s_mount_opt & EXT2_MOUNT_DAX)
> + seq_puts(seq, ",dax");
> #endif
>
> if (!test_opt(sb, RESERVATION))
So if someone mounts filesystem with -o xip, /proc/mounts will show both
'xip' and 'dax'. OK, probably makes sense.

Yeah, I thought that was the best migration path; somebody might have a script that's checking for 'xip' in /proc/mounts.

2015-01-19 09:45:11

by Jan Kara

[permalink] [raw]
Subject: Re: + ext2-get-rid-of-most-mentions-of-xip-in-ext2.patch added to -mm tree

On Fri 16-01-15 21:09:03, Wilcox, Matthew R wrote:
> -----Original Message-----
> From: Jan Kara [mailto:[email protected]]
> Sent: Thursday, January 15, 2015 2:31 AM
> To: Wilcox, Matthew R
> Cc: [email protected]; Dilger, Andreas; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
> Subject: Re: + ext2-get-rid-of-most-mentions-of-xip-in-ext2.patch added to -mm tree
>
> On Mon 12-01-15 15:11:11, Andrew Morton wrote:
> ...
> > diff -puN fs/ext2/ext2.h~ext2-get-rid-of-most-mentions-of-xip-in-ext2 fs/ext2/ext2.h
> > --- a/fs/ext2/ext2.h~ext2-get-rid-of-most-mentions-of-xip-in-ext2
> > +++ a/fs/ext2/ext2.h
> > @@ -380,14 +380,15 @@ struct ext2_inode {
> > #define EXT2_MOUNT_NO_UID32 0x000200 /* Disable 32-bit UIDs */
> > #define EXT2_MOUNT_XATTR_USER 0x004000 /* Extended user attributes */
> > #define EXT2_MOUNT_POSIX_ACL 0x008000 /* POSIX Access Control Lists */
> > -#ifdef CONFIG_FS_DAX
> > -#define EXT2_MOUNT_XIP 0x010000 /* Execute in place */
> > -#else
> > -#define EXT2_MOUNT_XIP 0
> > -#endif
> > +#define EXT2_MOUNT_XIP 0x010000 /* Obsolete, use DAX */
> > #define EXT2_MOUNT_USRQUOTA 0x020000 /* user quota */
> > #define EXT2_MOUNT_GRPQUOTA 0x040000 /* group quota */
> > #define EXT2_MOUNT_RESERVATION 0x080000 /* Preallocation */
> > +#ifdef CONFIG_FS_DAX
> > +#define EXT2_MOUNT_DAX 0x100000 /* Direct Access */
> > +#else
> > +#define EXT2_MOUNT_DAX 0
> > +#endif
> Why do you define EXT2_MOUNT_DAX differently depending on CONFIG_FS_DAX?
> That seems unnecessary...
>
> That's copied from the original XIP code. I think the intent is to make the XIP/DAX code disappear from the module, rather than being dead code cluttering up the object file.
I see. OK.

Honza

--
Jan Kara <[email protected]>
SUSE Labs, CR