From patchwork Thu Aug 23 04:25:40 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Liu X-Patchwork-Id: 179498 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 CB50C2C0097 for ; Thu, 23 Aug 2012 14:16:04 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751397Ab2HWEP6 (ORCPT ); Thu, 23 Aug 2012 00:15:58 -0400 Received: from mail-pb0-f46.google.com ([209.85.160.46]:46024 "EHLO mail-pb0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751339Ab2HWEP4 (ORCPT ); Thu, 23 Aug 2012 00:15:56 -0400 Received: by pbbrr13 with SMTP id rr13so602543pbb.19 for ; Wed, 22 Aug 2012 21:15:56 -0700 (PDT) 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=nEdM1ycMHCATzy9PbplQT9EjVvnwKftHHOm1IbI2TzE=; b=o4IujX6qCyzau6JiXPkWWSDifAw+ZR0jTEPzylBbiQSM3IEvIYP03D4vOYKLx83Qan 4s2yy1p2qnZA6SN5Ohs4svDiojvMNL+go7Z5LqNvYBbtvw4CkLdjTJ4Rf7soq/A2Otkn xkclxJjcPM0RxJW3vspXzire4rhWWEykLFZpfqa0sNPF11a6v16s3DrSpV5e8lP3mxqD gbLOAAA6hGbQD2CTKD/YGNcZlZa7DPRGlJnndCF645B8Fxb9wfNrbLMm27CeLetLKhpQ ym/0QtQgl5jUiacmyJ/4gZF/Az8Etbx6V6KNbovLeEdlGaJ2kc2atKEhDjix1o6Bji4L 2Uxg== Received: by 10.68.226.167 with SMTP id rt7mr1198129pbc.146.1345695356364; Wed, 22 Aug 2012 21:15:56 -0700 (PDT) Received: from lz-desktop.hz.ali.com ([182.92.247.2]) by mx.google.com with ESMTPS id ka4sm5089926pbc.61.2012.08.22.21.15.54 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 22 Aug 2012 21:15:56 -0700 (PDT) From: Zheng Liu To: linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org Cc: Lukas Czerner , Zheng Liu Subject: [PATCH 2/3] ext4: let us fully support punching hole feature in fallocate Date: Thu, 23 Aug 2012 12:25:40 +0800 Message-Id: <1345695941-15053-3-git-send-email-wenqing.lz@taobao.com> X-Mailer: git-send-email 1.7.12.rc2.18.g61b472e In-Reply-To: <1345695941-15053-1-git-send-email-wenqing.lz@taobao.com> References: <1345695941-15053-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 supporing punching hole feature in block-based file, we should enable it in fallocate. So some check statements need to adjust. Now we check FALLOC_FL_PUNCH_HOLE flag firstly in ext4_fallocate. CC: Lukas Czerner Signed-off-by: Zheng Liu --- fs/ext4/extents.c | 15 ++++++++------- 1 files changed, 8 insertions(+), 7 deletions(-) diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index ad9e7e3..c592921 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -4358,20 +4358,21 @@ 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; + /* We fully support punch hole */ 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; /*