lsattr,chattr: support -p

function                                             old     new   delta
fgetsetprojid                                          -     107    +107
list_attributes                                      169     222     +53
change_attributes                                    277     326     +49
chattr_main                                          272     307     +35
close_silently                                         -      22     +22
.rodata                                           103378  103393     +15
packed_usage                                       33658   33666      +8
fgetsetversion                                        88      74     -14
fgetsetflags                                         162     148     -14
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 5/2 up/down: 289/-28)           Total: 261 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2021-06-20 10:57:24 +02:00
parent 9c291f2cc0
commit 526b834790
5 changed files with 88 additions and 23 deletions

View File

@@ -195,6 +195,18 @@ struct ext2_dx_countlimit {
#define EXT2_IOC_SETFLAGS _IOW('f', 2, long)
#define EXT2_IOC_GETVERSION _IOR('v', 1, long)
#define EXT2_IOC_SETVERSION _IOW('v', 2, long)
//NB: despite "long" in defs above, these ioctls use an _int_!
//passing them a pointer to long will read/write only int-sized data!
struct ext2_fsxattr {
uint32_t fsx_xflags; /* xflags field value (get/set) */
uint32_t fsx_extsize; /* extsize field value (get/set)*/
uint32_t fsx_nextents; /* nextents field value (get) */
uint32_t fsx_projid; /* project identifier (get/set) */
uint32_t fsx_cowextsize; /* CoW extsize field value (get/set)*/
unsigned char fsx_pad[8];
};
#define EXT2_IOC_FSGETXATTR _IOR('X', 31, struct ext2_fsxattr)
#define EXT2_IOC_FSSETXATTR _IOW('X', 32, struct ext2_fsxattr)
/*
* Structure of an inode on the disk