Btrfs: implement FS_IOC_GETFLAGS/SETFLAGS/GETVERSION
Add support for the standard attributes set via chattr and read via lsattr. Currently we store the attributes in the flags value in the btrfs inode, but I wonder whether we should split it into two so that we don't have to keep converting between the two formats. Remove the btrfs_clear_flag/btrfs_set_flag/btrfs_test_flag macros as they were confusing the existing code and got in the way of the new additions. Also add the FS_IOC_GETVERSION ioctl for getting i_generation as it's trivial. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:

committed by
Chris Mason

parent
c289811cc0
commit
6cbff00f46
@@ -123,7 +123,7 @@ static int check_compressed_csum(struct inode *inode,
|
||||
u32 csum;
|
||||
u32 *cb_sum = &cb->sums;
|
||||
|
||||
if (btrfs_test_flag(inode, NODATASUM))
|
||||
if (BTRFS_I(inode)->flags & BTRFS_INODE_NODATASUM)
|
||||
return 0;
|
||||
|
||||
for (i = 0; i < cb->nr_pages; i++) {
|
||||
@@ -670,7 +670,7 @@ int btrfs_submit_compressed_read(struct inode *inode, struct bio *bio,
|
||||
*/
|
||||
atomic_inc(&cb->pending_bios);
|
||||
|
||||
if (!btrfs_test_flag(inode, NODATASUM)) {
|
||||
if (!(BTRFS_I(inode)->flags & BTRFS_INODE_NODATASUM)) {
|
||||
btrfs_lookup_bio_sums(root, inode, comp_bio,
|
||||
sums);
|
||||
}
|
||||
@@ -697,7 +697,7 @@ int btrfs_submit_compressed_read(struct inode *inode, struct bio *bio,
|
||||
ret = btrfs_bio_wq_end_io(root->fs_info, comp_bio, 0);
|
||||
BUG_ON(ret);
|
||||
|
||||
if (!btrfs_test_flag(inode, NODATASUM))
|
||||
if (!(BTRFS_I(inode)->flags & BTRFS_INODE_NODATASUM))
|
||||
btrfs_lookup_bio_sums(root, inode, comp_bio, sums);
|
||||
|
||||
ret = btrfs_map_bio(root, READ, comp_bio, mirror_num, 0);
|
||||
|
Reference in New Issue
Block a user