Gfs2: fail if we try to use hole punch
authorJosef Bacik <josef@redhat.com>
Thu, 18 Nov 2010 01:46:20 +0000 (20:46 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 13 Jan 2011 01:16:44 +0000 (20:16 -0500)
Gfs2 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@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/gfs2/ops_inode.c

index ae140c8abb5c872ae1bacaddef73ccc2df15bcac..040b5a2e65561f23049b8793f451b0b032e3be17 100644 (file)
@@ -1425,6 +1425,10 @@ static long gfs2_fallocate(struct inode *inode, int mode, loff_t offset,
        loff_t next = (offset + len - 1) >> sdp->sd_sb.sb_bsize_shift;
        next = (next + 1) << sdp->sd_sb.sb_bsize_shift;
 
+       /* We only support the FALLOC_FL_KEEP_SIZE mode */
+       if (mode && (mode != FALLOC_FL_KEEP_SIZE))
+               return -EOPNOTSUPP;
+
        offset = (offset >> sdp->sd_sb.sb_bsize_shift) <<
                 sdp->sd_sb.sb_bsize_shift;