linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andreas Dilger <adilger@dilger.ca>
To: Ira Weiny <ira.weiny@intel.com>
Cc: Xiao Yang <yangx.jy@cn.fujitsu.com>,
	"Darrick J. Wong" <darrick.wong@oracle.com>,
	Theodore Ts'o <tytso@mit.edu>, Eric Biggers <ebiggers@kernel.org>,
	Ext4 Developers List <linux-ext4@vger.kernel.org>
Subject: Re: [PATCH v2] chattr/lsattr: Support dax attribute
Date: Wed, 12 Aug 2020 17:25:22 -0600	[thread overview]
Message-ID: <A2F1D05C-92DA-4D45-9428-B5ED0B089A5C@dilger.ca> (raw)
In-Reply-To: <20200807160305.GQ1573827@iweiny-DESK2.sc.intel.com>

[-- Attachment #1: Type: text/plain, Size: 5212 bytes --]

On Aug 7, 2020, at 10:03 AM, Ira Weiny <ira.weiny@intel.com> wrote:
> 
> On Tue, Jul 28, 2020 at 01:33:21PM +0800, Xiao Yang wrote:
>> Use the letter 'x' to set/get dax attribute on a directory/file.
>> 
>> Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
>> ---
>> 
>> V1->V2:
>> 1) Define FS_DAX_FL in order and add missing 'x' letter in manpage.
>> 2) Add more detailed description about 'x' attribute.
>> 3) 'x' is a separate attribute and doesn't always affect S_DAX(i.e.
>>   pagecache bypass) so remove the related info.
>> 
>> lib/e2p/pf.c         |  1 +
>> lib/ext2fs/ext2_fs.h |  1 +
>> misc/chattr.1.in     | 15 ++++++++++++---
>> misc/chattr.c        |  3 ++-
>> 4 files changed, 16 insertions(+), 4 deletions(-)
>> 
>> diff --git a/lib/e2p/pf.c b/lib/e2p/pf.c
>> index 0c6998c4..e59cccff 100644
>> --- a/lib/e2p/pf.c
>> +++ b/lib/e2p/pf.c
>> @@ -44,6 +44,7 @@ static struct flags_name flags_array[] = {
>> 	{ EXT2_TOPDIR_FL, "T", "Top_of_Directory_Hierarchies" },
>> 	{ EXT4_EXTENTS_FL, "e", "Extents" },
>> 	{ FS_NOCOW_FL, "C", "No_COW" },
>> +	{ FS_DAX_FL, "x", "Dax" },
>> 	{ EXT4_CASEFOLD_FL, "F", "Casefold" },
>> 	{ EXT4_INLINE_DATA_FL, "N", "Inline_Data" },
>> 	{ EXT4_PROJINHERIT_FL, "P", "Project_Hierarchy" },
>> diff --git a/lib/ext2fs/ext2_fs.h b/lib/ext2fs/ext2_fs.h
>> index 6c20ea77..88f510a3 100644
>> --- a/lib/ext2fs/ext2_fs.h
>> +++ b/lib/ext2fs/ext2_fs.h
>> @@ -335,6 +335,7 @@ struct ext2_dx_tail {
>> /* EXT4_EOFBLOCKS_FL 0x00400000 was here */
>> #define FS_NOCOW_FL			0x00800000 /* Do not cow file */
>> #define EXT4_SNAPFILE_FL		0x01000000  /* Inode is a snapshot */
>> +#define FS_DAX_FL			0x02000000 /* Inode is DAX */
> 
> Per-file support is not supported on ext2...
> 
> So I'm suspicious of this change.  It is probably not an issue but I just
> wanted to check if you are trying to test on ext2?

It is up to the kernel to handle the various flags, definitely the chattr
command should not be trying to guess which flags are supported, since
this can definitely change between kernels and the underlying filesystems.

Note that the headers in e2fsprogs are all using "ext2" in the name,
regardless of the fact that the flags apply to ext3 and ext4.

Cheers, Andreas

>> #define EXT4_SNAPFILE_DELETED_FL	0x04000000  /* Snapshot is being deleted */
>> #define EXT4_SNAPFILE_SHRUNK_FL		0x08000000  /* Snapshot shrink has completed */
>> #define EXT4_INLINE_DATA_FL		0x10000000 /* Inode has inline data */
>> diff --git a/misc/chattr.1.in b/misc/chattr.1.in
>> index ff2fcf00..5a4928a5 100644
>> --- a/misc/chattr.1.in
>> +++ b/misc/chattr.1.in
>> @@ -23,13 +23,13 @@ chattr \- change file attributes on a Linux file system
>> .B chattr
>> changes the file attributes on a Linux file system.
>> .PP
>> -The format of a symbolic mode is +-=[aAcCdDeFijPsStTu].
>> +The format of a symbolic mode is +-=[aAcCdDeFijPsStTux].
>> .PP
>> The operator '+' causes the selected attributes to be added to the
>> existing attributes of the files; '-' causes them to be removed; and '='
>> causes them to be the only attributes that the files have.
>> .PP
>> -The letters 'aAcCdDeFijPsStTu' select the new attributes for the files:
>> +The letters 'aAcCdDeFijPsStTux' select the new attributes for the files:
>> append only (a),
>> no atime updates (A),
>> compressed (c),
>> @@ -45,7 +45,8 @@ secure deletion (s),
>> synchronous updates (S),
>> no tail-merging (t),
>> top of directory hierarchy (T),
>> -and undeletable (u).
>> +undeletable (u),
>> +and direct access for files (x).
>> .PP
>> The following attributes are read-only, and may be listed by
>> .BR lsattr (1)
>> @@ -210,6 +211,14 @@ saved.  This allows the user to ask for its undeletion.  Note: please
>> make sure to read the bugs and limitations section at the end of this
>> document.
>> .TP
>> +.B x
>> +The 'x' attribute can be set on a directory or file.  If the attribute
>> +is set on an existing directory, it will be inherited by all files and
>> +subdirectories that are subsequently created in the directory.  If an
>> +existing directory has contained some files and subdirectories, modifying
>> +the attribute on the parent directory doesn't change the attributes on
>> +these files and subdirectories.
>> +.TP
>> .B V
>> A file with the 'V' attribute set has fs-verity enabled.  It cannot be
>> written to, and the filesystem will automatically verify all data read
>> diff --git a/misc/chattr.c b/misc/chattr.c
>> index a5d60170..c0337f86 100644
>> --- a/misc/chattr.c
>> +++ b/misc/chattr.c
>> @@ -86,7 +86,7 @@ static unsigned long sf;
>> static void usage(void)
>> {
>> 	fprintf(stderr,
>> -		_("Usage: %s [-pRVf] [-+=aAcCdDeijPsStTuF] [-v version] files...\n"),
>> +		_("Usage: %s [-pRVf] [-+=aAcCdDeijPsStTuFx] [-v version] files...\n"),
>> 		program_name);
>> 	exit(1);
>> }
>> @@ -112,6 +112,7 @@ static const struct flags_char flags_array[] = {
>> 	{ EXT2_NOTAIL_FL, 't' },
>> 	{ EXT2_TOPDIR_FL, 'T' },
>> 	{ FS_NOCOW_FL, 'C' },
>> +	{ FS_DAX_FL, 'x' },
>> 	{ EXT4_CASEFOLD_FL, 'F' },
>> 	{ 0, 0 }
>> };
>> --
>> 2.21.0
>> 
>> 
>> 


Cheers, Andreas






[-- Attachment #2: Message signed with OpenPGP --]
[-- Type: application/pgp-signature, Size: 873 bytes --]

  parent reply	other threads:[~2020-08-12 23:25 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-28  5:33 [PATCH v2] chattr/lsattr: Support dax attribute Xiao Yang
2020-08-04  2:00 ` Xiao Yang
2020-08-07 16:03 ` Ira Weiny
2020-08-11 15:33   ` Xiao Yang
2020-08-12 23:25   ` Andreas Dilger [this message]
2020-08-13  1:06     ` Xiao Yang
2020-08-12 23:29 ` Andreas Dilger
2020-08-13  1:42   ` Xiao Yang
2020-08-28  1:33     ` Xiao Yang
2020-08-28  8:22       ` Andreas Dilger
2020-09-17  3:31         ` Xiao Yang
2020-09-18  0:52 ` Ira Weiny
2020-09-21  2:15   ` Xiao Yang
2020-10-01 20:56 ` Theodore Y. Ts'o
2020-10-03  1:38   ` Xiao Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=A2F1D05C-92DA-4D45-9428-B5ED0B089A5C@dilger.ca \
    --to=adilger@dilger.ca \
    --cc=darrick.wong@oracle.com \
    --cc=ebiggers@kernel.org \
    --cc=ira.weiny@intel.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=tytso@mit.edu \
    --cc=yangx.jy@cn.fujitsu.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).