From patchwork Mon Nov 19 12:55:17 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Liu X-Patchwork-Id: 199996 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 053AC2C00A4 for ; Mon, 19 Nov 2012 23:42:53 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751670Ab2KSMmw (ORCPT ); Mon, 19 Nov 2012 07:42:52 -0500 Received: from mail-pa0-f46.google.com ([209.85.220.46]:40976 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751440Ab2KSMmv (ORCPT ); Mon, 19 Nov 2012 07:42:51 -0500 Received: by mail-pa0-f46.google.com with SMTP id bh2so430130pad.19 for ; Mon, 19 Nov 2012 04:42:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=2A04Auk2TGxhzisffBFqjKPFuYUlcyPTNQ4LNyNnALM=; b=hRxOcGfS2+OsXmn6N6na1PNja2NJypgRQhAhaNY/slG+RXBM03kZ46Hap+G4q5mCls nV+/vYjnCdScH0zckYh17Voy4c51+3SytGTG9wOOXaJjaEs7w1D6++dkLN+uOqctYIqN AwPishmovfdNs4SYntzPN4r2tBi4XpXcQ/AbGZrsyt2ID35PPhtR5+Gv/r/JpF0oh6IE SPqSUlB/CSAxoPECuXh/RPKuTsuUHZoJBfJ8Aw2rX21yEoAYTAVIluRzLsEGpOvpKbxJ 1kzBv9r1JygAE9Sj7HJA+opeuZu2txe5UqQh30vZHA+6sjlw0eKq8suxONZIpcLD1zK2 qTeg== Received: by 10.66.76.162 with SMTP id l2mr35399259paw.13.1353328971235; Mon, 19 Nov 2012 04:42:51 -0800 (PST) Received: from lz-desktop.taobao.ali.com ([182.92.247.2]) by mx.google.com with ESMTPS id jw10sm6180435pbb.20.2012.11.19.04.42.49 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 19 Nov 2012 04:42:50 -0800 (PST) From: Zheng Liu To: linux-ext4@vger.kernel.org Cc: Zheng Liu Subject: [PATCH 2/3 v2] ext4: let us fully support punching hole feature in fallocate Date: Mon, 19 Nov 2012 20:55:17 +0800 Message-Id: <1353329718-2075-3-git-send-email-wenqing.lz@taobao.com> X-Mailer: git-send-email 1.7.12.rc2.18.g61b472e In-Reply-To: <1353329718-2075-1-git-send-email-wenqing.lz@taobao.com> References: <1353329718-2075-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. 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 7011ac9..b43b3e9 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -4420,13 +4420,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; @@ -4434,6 +4427,13 @@ long ext4_fallocate(struct file *file, int mode, loff_t offset, loff_t len) if (mode & FALLOC_FL_PUNCH_HOLE) return ext4_punch_hole(file, offset, len); + /* + * 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; /*