From patchwork Tue Apr 17 16:53:38 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Liu X-Patchwork-Id: 153249 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 466BBB7049 for ; Wed, 18 Apr 2012 02:48:10 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751724Ab2DQQr3 (ORCPT ); Tue, 17 Apr 2012 12:47:29 -0400 Received: from mail-pz0-f66.google.com ([209.85.210.66]:64735 "EHLO mail-pz0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752345Ab2DQQr1 (ORCPT ); Tue, 17 Apr 2012 12:47:27 -0400 Received: by mail-pz0-f66.google.com with SMTP id e7so3181879dad.1 for ; Tue, 17 Apr 2012 09:47:27 -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=E5EuJWfOsQRlASMe3z6suHcU7p+VOkMyAGvb0S37GRE=; b=KJ2k6z4YJzyTa7HrArM4NGcAlps1LfRTZAF4v1LIG+UnzeGLr3dTvX40O5uE5SGiDq VwfzLQa6lW/YyC1hicfILIKcXaVFBdpJ/+GK1n5SPiuJmyAF+iXkg3MCe0cwaZbDXox2 SCZEXk8fEYlL4oKu7zjU6aTC3J1FgIC5FIPAzOBDCggSMKao/BLV5rNbe5pId1G+QPvu gVK9JhlU702j2FvQT/GzIo1udUMoveS2seO2SP3UQlPUEf/RU/RrJiE+eK12eCdAthiV xGYx1F1xPHK2z+Ue7Wm6SswCN79nb21CfNgLR0gw8Kem66r3qVDEj/4j2AqT6jQL3zmR AGfw== Received: by 10.68.213.73 with SMTP id nq9mr37883069pbc.143.1334681247651; Tue, 17 Apr 2012 09:47:27 -0700 (PDT) Received: from localhost.localdomain ([182.92.247.2]) by mx.google.com with ESMTPS id i1sm16620234pbv.49.2012.04.17.09.47.25 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 17 Apr 2012 09:47:27 -0700 (PDT) From: Zheng Liu To: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org Cc: Zheng Liu Subject: [RFC][PATCH 3/3] ext4: add FALLOC_FL_NO_HIDE_STALE support Date: Wed, 18 Apr 2012 00:53:38 +0800 Message-Id: <1334681618-9452-4-git-send-email-wenqing.lz@taobao.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1334681618-9452-1-git-send-email-wenqing.lz@taobao.com> References: <1334681618-9452-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 When FALLOC_FL_NO_HIDE_STALE flag is marked, we create an initialized extent directly. Signed-off-by: Zheng Liu --- fs/ext4/extents.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 1421938..efb5150 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -4291,7 +4291,7 @@ long ext4_fallocate(struct file *file, int mode, loff_t offset, loff_t len) return -EOPNOTSUPP; /* Return error if mode is not supported */ - if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE)) + if (mode & ~FALLOC_FL_SUPPORTED_FLAGS) return -EOPNOTSUPP; if (mode & FALLOC_FL_PUNCH_HOLE) @@ -4316,7 +4316,10 @@ long ext4_fallocate(struct file *file, int mode, loff_t offset, loff_t len) trace_ext4_fallocate_exit(inode, offset, max_blocks, ret); return ret; } - flags = EXT4_GET_BLOCKS_CREATE_UNINIT_EXT; + if (mode & FALLOC_FL_NO_HIDE_STALE) + flags = EXT4_GET_BLOCKS_CREATE; + else + flags = EXT4_GET_BLOCKS_CREATE_UNINIT_EXT; if (mode & FALLOC_FL_KEEP_SIZE) flags |= EXT4_GET_BLOCKS_KEEP_SIZE; /*