Commit 0fb408a5 authored by Johannes Thumshirn's avatar Johannes Thumshirn Committed by David Sterba
Browse files

btrfs: add filesystem generation to FS_INFO ioctl



Add retrieval of the filesystem's generation to the fsinfo ioctl. This is
driven by setting the BTRFS_FS_INFO_FLAG_GENERATION flag in
btrfs_ioctl_fs_info_args::flags.

Reviewed-by: default avatarNikolay Borisov <nborisov@suse.com>
Signed-off-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 137c5418
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -3247,6 +3247,11 @@ static long btrfs_ioctl_fs_info(struct btrfs_fs_info *fs_info,
		fi_args->flags |= BTRFS_FS_INFO_FLAG_CSUM_INFO;
	}

	if (flags_in & BTRFS_FS_INFO_FLAG_GENERATION) {
		fi_args->generation = fs_info->generation;
		fi_args->flags |= BTRFS_FS_INFO_FLAG_GENERATION;
	}

	if (copy_to_user(arg, fi_args, sizeof(*fi_args)))
		ret = -EFAULT;

+5 −1
Original line number Diff line number Diff line
@@ -250,6 +250,9 @@ struct btrfs_ioctl_dev_info_args {
/* Request information about checksum type and size */
#define BTRFS_FS_INFO_FLAG_CSUM_INFO			(1 << 0)

/* Request information about filesystem generation */
#define BTRFS_FS_INFO_FLAG_GENERATION			(1 << 1)

struct btrfs_ioctl_fs_info_args {
	__u64 max_id;				/* out */
	__u64 num_devices;			/* out */
@@ -261,7 +264,8 @@ struct btrfs_ioctl_fs_info_args {
	__u16 csum_type;			/* out */
	__u16 csum_size;			/* out */
	__u64 flags;				/* in/out */
	__u8 reserved[968];			/* pad to 1k */
	__u64 generation;			/* out */
	__u8 reserved[960];			/* pad to 1k */
};

/*