diff options
author | Krutika Dhananjay <kdhananj@redhat.com> | 2016-02-25 18:27:09 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2016-03-08 18:42:24 -0800 |
commit | c00722ff9d83d131e624f5499da05160d184cfba (patch) | |
tree | 04260a77ad327a7a731b889df2adbdf971eff579 /xlators/features/shard/src/shard.c | |
parent | 66d62edd08be5701407e4adcb153a676702ff8b8 (diff) |
features/shard: Return ENOTSUP for unsupported fallocate flags
Basis: http://lists.gnu.org/archive/html/qemu-devel/2016-02/msg05101.html
Change-Id: I5bf80b6e8caed3d7f136fc57e16abfb28869e009
BUG: 1261841
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
Reviewed-on: http://review.gluster.org/13523
Smoke: Gluster Build System <jenkins@build.gluster.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Reviewed-by: Ravishankar N <ravishankar@redhat.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators/features/shard/src/shard.c')
-rw-r--r-- | xlators/features/shard/src/shard.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/xlators/features/shard/src/shard.c b/xlators/features/shard/src/shard.c index 6cf47c53c5b..8e4443535e9 100644 --- a/xlators/features/shard/src/shard.c +++ b/xlators/features/shard/src/shard.c @@ -4590,9 +4590,17 @@ int shard_fallocate (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t keep_size, off_t offset, size_t len, dict_t *xdata) { + if ((keep_size != 0) && (keep_size != FALLOC_FL_ZERO_RANGE) && + (keep_size != (FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE))) + goto out; + shard_common_inode_write_begin (frame, this, GF_FOP_FALLOCATE, fd, NULL, 0, offset, keep_size, len, NULL, xdata); return 0; + +out: + SHARD_STACK_UNWIND (fallocate, frame, -1, ENOTSUP, NULL, NULL, NULL); + return 0; } int |