diff options
author | Emmanuel Dreyfus <manu@netbsd.org> | 2014-09-25 15:28:03 +0200 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2014-09-26 03:31:24 -0700 |
commit | 8e57090f7da4027c46176c9786372a00e22df69d (patch) | |
tree | 16bcbd9ede1c727fe8e5960af1a1ea298da42475 | |
parent | 5123949bebc3520ed3d64986420c139801013c60 (diff) |
Do not forbid fallocate on non Linux systems
Linux fallocate() differs from posix_fallocate() by
an extra flag that can have the FALLOC_FL_KEEP_SIZE value;
Do not test FALLOC_FL_KEEP_SIZE existence to enable fallocate()
in posix xlator, as sys_fallocate() in libglusterfs provides
support for both implementations.
BUG: 1129939
Change-Id: Idf41a0396028a15e81281791bf6912d7fd674e3f
Signed-off-by: Emmanuel Dreyfus <manu@netbsd.org>
Reviewed-on: http://review.gluster.org/8856
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
-rw-r--r-- | xlators/storage/posix/src/posix.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c index 49dbaadfd03..090e53f0379 100644 --- a/xlators/storage/posix/src/posix.c +++ b/xlators/storage/posix/src/posix.c @@ -572,7 +572,6 @@ out: return 0; } -#ifdef FALLOC_FL_KEEP_SIZE static int32_t posix_do_fallocate(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags, off_t offset, size_t len, struct iatt *statpre, @@ -625,7 +624,6 @@ out: return ret; } -#endif /* FALLOC_FL_KEEP_SIZE */ char* _page_aligned_alloc (size_t size, char **aligned_buf) @@ -796,16 +794,14 @@ _posix_fallocate(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t keep_siz off_t offset, size_t len, dict_t *xdata) { int32_t ret; -#ifndef FALLOC_FL_KEEP_SIZE - ret = EOPNOTSUPP; - -#else /* FALLOC_FL_KEEP_SIZE */ int32_t flags = 0; struct iatt statpre = {0,}; struct iatt statpost = {0,}; +#ifdef FALLOC_FL_KEEP_SIZE if (keep_size) flags = FALLOC_FL_KEEP_SIZE; +#endif /* FALLOC_FL_KEEP_SIZE */ ret = posix_do_fallocate(frame, this, fd, flags, offset, len, &statpre, &statpost); @@ -816,7 +812,6 @@ _posix_fallocate(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t keep_siz return 0; err: -#endif /* FALLOC_FL_KEEP_SIZE */ STACK_UNWIND_STRICT(fallocate, frame, -1, -ret, NULL, NULL, NULL); return 0; } |