From patchwork Fri Oct 24 10:09:51 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Akira Fujita X-Patchwork-Id: 5649 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id C44D4DDDE0 for ; Fri, 24 Oct 2008 21:10:25 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753338AbYJXKKW (ORCPT ); Fri, 24 Oct 2008 06:10:22 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753211AbYJXKKV (ORCPT ); Fri, 24 Oct 2008 06:10:21 -0400 Received: from TYO201.gate.nec.co.jp ([202.32.8.193]:41870 "EHLO tyo201.gate.nec.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753338AbYJXKKP (ORCPT ); Fri, 24 Oct 2008 06:10:15 -0400 Received: from mailgate3.nec.co.jp ([10.7.69.193]) by tyo201.gate.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9OA9r3v028162; Fri, 24 Oct 2008 19:09:53 +0900 (JST) Received: (from root@localhost) by mailgate3.nec.co.jp (8.11.7/3.7W-MAILGATE-NEC) id m9OA9rL15142; Fri, 24 Oct 2008 19:09:53 +0900 (JST) Received: from shoin.jp.nec.com (shoin.jp.nec.com [10.26.220.3]) by mailsv4.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9OA9qmt023618; Fri, 24 Oct 2008 19:09:52 +0900 (JST) Received: from [10.64.168.93] ([10.64.168.93] [10.64.168.93]) by mail.jp.nec.com with ESMTP; Fri, 24 Oct 2008 19:09:52 +0900 Message-ID: <49019EEF.1040608@rs.jp.nec.com> Date: Fri, 24 Oct 2008 19:09:51 +0900 From: Akira Fujita User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: linux-ext4@vger.kernel.org, Theodore Tso , Mingming Cao CC: linux-fsdevel@vger.kernel.org Subject: [RFC][PATCH 5/9]ext4: Add the EXT4_IOC_SUPER_INFO ioctl Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@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;