From patchwork Fri Jan 18 07:16:21 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Liu X-Patchwork-Id: 213499 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.180.67]) by ozlabs.org (Postfix) with ESMTP id E95E02C0086 for ; Fri, 18 Jan 2013 18:02:40 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751118Ab3ARHCk (ORCPT ); Fri, 18 Jan 2013 02:02:40 -0500 Received: from mail-pa0-f50.google.com ([209.85.220.50]:58175 "EHLO mail-pa0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750951Ab3ARHCk (ORCPT ); Fri, 18 Jan 2013 02:02:40 -0500 Received: by mail-pa0-f50.google.com with SMTP id hz10so1948614pad.37 for ; Thu, 17 Jan 2013 23:02:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references; bh=ENwQ++FVebfOebP/9fN/KVLzeUyK6O09SvnWk3uafuU=; b=MbLL8k6L4eOg73ZKkrDbg7rbHQTIblZ6MUiEt2JHwCivEveCtFcUuSRXtkGz1zSles DUkItQPVL+zwW0KzwaPNahrOO8CfkdtFGgPNnhdZrjMNuTITbyaZRgTYTzsAmdPjFI4/ S1HpSeWJ3WZNmt0+vTNgwZOTcpr0oXUMF3e3dJObLt4DuuyB9c5pyQmCTL4eZA3jTgkd nP2SazxwfH1G7bwnoiee3JIR6THA/a78stUye9QvQchYQMEFEs+lrpPayTeQF66zEV/C w8LiXBtqWHSlcOFYeFaHq5p3FT0xpyChNi2J91KCufIeyd6OvSr0Rzjem2cIDragZqHh tZ8g== X-Received: by 10.66.81.199 with SMTP id c7mr21067547pay.39.1358492559680; Thu, 17 Jan 2013 23:02:39 -0800 (PST) Received: from lz-desktop.taobao.ali.com ([182.92.247.2]) by mx.google.com with ESMTPS id rv8sm2554647pbc.27.2013.01.17.23.02.35 (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 17 Jan 2013 23:02:38 -0800 (PST) From: Zheng Liu To: linux-ext4@vger.kernel.org Cc: "Theodore Ts'o" , Zheng Liu Subject: [RESEND][PATCH 2/2 v2] ext4: let us fully support punching hole feature in fallocate Date: Fri, 18 Jan 2013 15:16:21 +0800 Message-Id: <1358493381-20150-2-git-send-email-wenqing.lz@taobao.com> X-Mailer: git-send-email 1.7.12.rc2.18.g61b472e In-Reply-To: <1358493381-20150-1-git-send-email-wenqing.lz@taobao.com> References: <1358493381-20150-1-git-send-email-wenqing.lz@taobao.com> Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org From: Zheng Liu After adding indirect punching hole feature, we need to enable it in fallocate. For this purpose, some sanity checks need to be adjusted. Currently we need to check FALLOC_FL_PUNCH_HOLE flag before other sanity checks. CC: "Theodore Ts'o" Signed-off-by: Zheng Liu --- fs/ext4/extents.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 5ae1674..76643fd 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -4397,13 +4397,6 @@ long ext4_fallocate(struct file *file, int mode, loff_t offset, loff_t len) struct ext4_map_blocks map; unsigned int credits, blkbits = inode->i_blkbits; - /* - * currently supporting (pre)allocate mode for extent-based - * files _only_ - */ - if (!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))) - return -EOPNOTSUPP; - /* Return error if mode is not supported */ if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE)) return -EOPNOTSUPP; @@ -4415,6 +4408,13 @@ long ext4_fallocate(struct file *file, int mode, loff_t offset, loff_t len) if (ret) return ret; + /* + * currently supporting (pre)allocate mode for extent-based + * files _only_ + */ + if (!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))) + return -EOPNOTSUPP; + trace_ext4_fallocate_enter(inode, offset, len, mode); map.m_lblk = offset >> blkbits; /*