From patchwork Fri Oct 24 10:09:51 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [RFC,5/9] ext4: Add the EXT4_IOC_SUPER_INFO ioctl Date: Fri, 24 Oct 2008 00:09:51 -0000 From: Akira Fujita X-Patchwork-Id: 5649 Message-Id: <49019EEF.1040608@rs.jp.nec.com> To: linux-ext4@vger.kernel.org, Theodore Tso , Mingming Cao Cc: linux-fsdevel@vger.kernel.org ext4: online defrag -- Add the EXT4_IOC_SUPER_INFO ioctl From: Akira Fujita EXT4_IOC_SUPER_INFO gets super block information on disk. Super block information is necessary for relevant (-r) and force (-f) defrag. Non-root user can't get this information by opening the block device directly, so implement this ioctl newly. Signed-off-by: Akira Fujita Signed-off-by: Takashi Sato --- fs/ext4/ext4.h | 1 + fs/ext4/ioctl.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 0 deletions(-) --- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index ccea421..94c4186 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -303,6 +303,7 @@ struct ext4_new_group_data { #define EXT4_IOC_MIGRATE _IO('f', 9) /* note ioctl 11 reserved for filesystem-independent FIEMAP ioctl */ #define EXT4_IOC_DEFRAG _IOW('f', 15, struct ext4_ext_defrag_data) +#define EXT4_IOC_SUPER_INFO _IOR('f', 16, struct ext4_super_block) /* * ioctl commands in 32 bit emulation diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c index d5e1fe7..f8ce89b 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c @@ -246,6 +246,16 @@ setversion_out: return err; } + case EXT4_IOC_SUPER_INFO: { + struct ext4_super_block es; + + if (copy_to_user((struct ext4_super_block __user *)arg, + EXT4_SB(inode->i_sb)->s_es, sizeof(es))) + return -EFAULT; + else + return 0; + } + case EXT4_IOC_GROUP_ADD: { struct ext4_new_group_data input; struct super_block *sb = inode->i_sb;