xfs
[Top] [All Lists]

Re: [PATCH 5/6] Btrfs: fail if we try to use hole punch

To: Josef Bacik <josef@xxxxxxxxxx>
Subject: Re: [PATCH 5/6] Btrfs: fail if we try to use hole punch
From: Will Newton <will.newton@xxxxxxxxx>
Date: Tue, 9 Nov 2010 10:05:34 +0000
Cc: linux-kernel@xxxxxxxxxxxxxxx, linux-btrfs@xxxxxxxxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, joel.becker@xxxxxxxxxx, cmm@xxxxxxxxxx, cluster-devel@xxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=0L0Lj1vgUKIP+8Rt5HbZQl6uOOreq7A2cAV3DyC3Wy0=; b=DGNTFYze3BQlBRhHyqlBAxVcYbd0sgSOvfRVvvo0+Qa9pYHZQQSMHmnGFYN2hDxINB UDRKiSF0ngXTGLOX6nYzdJmXYNVR+k/B+1pPBXWCCQ7fZJgwj5+ech9Ddx73+TW2JupE 76bzknNynWe0r+o7h0D9ZDcpKsJHTkLb/JCMg=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=WAkjS6+jG0jUXMMD1xGVCs10Qz2pUf7CCyxb0oz/Wixuy/ntV0KBn9Kej+d2Pr/2QZ SKBsu0Sg1LuqpamKbWAixMBzU82eehPD18gOSqdhAUdt7otribhNc31LNt5vlfuMuBQy tUxGje2T/w2THha0DbVdyoNbvYNvThK8iRUkM=
In-reply-to: <1289248327-16308-5-git-send-email-josef@xxxxxxxxxx>
References: <1289248327-16308-1-git-send-email-josef@xxxxxxxxxx> <1289248327-16308-5-git-send-email-josef@xxxxxxxxxx>
On Mon, Nov 8, 2010 at 8:32 PM, Josef Bacik <josef@xxxxxxxxxx> wrote:

Hi Josef,

> Btrfs doesn't have the ability to punch holes yet, so make sure we return
> EOPNOTSUPP if we try to use hole punching through fallocate.  This support can
> be added later.  Thanks,
>
> Signed-off-by: Josef Bacik <josef@xxxxxxxxxx>
> ---
>  fs/btrfs/inode.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 78877d7..c590add 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -6936,6 +6936,10 @@ static long btrfs_fallocate(struct inode *inode, int 
> mode,
>        alloc_start = offset & ~mask;
>        alloc_end =  (offset + len + mask) & ~mask;
>
> +       /* We only support the FALLOC_FL_KEEP_SIZE mode */
> +       if (mode && (mode & FALLOC_FL_KEEP_SIZE))
> +               return -EOPNOTSUPP;
> +

This test looks rather odd. Why do we need to test that mode is
non-zero AND that mode has a specific bit set? Is there a missing !
here?

<Prev in Thread] Current Thread [Next in Thread>