diff options
author | Pranith Kumar K <pkarampu@redhat.com> | 2020-05-06 17:36:20 +0530 |
---|---|---|
committer | hari gowtham <hari.gowtham005@gmail.com> | 2020-05-26 09:36:12 +0000 |
commit | b04de77523dbd156d440a2f42e99bb0e8cc68d0f (patch) | |
tree | f7c27d983044e7c9078f71933d3d832efb6cf83e | |
parent | 57b48f2802dbb4af4ccb3f215816a305a6f840a9 (diff) |
tests: skip tests on absence of reflink in xfs
Fixes: #1223
Change-Id: I36cb72d920ffd77405051546615c5262c392daef
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
(cherry picked from commit b85f01abab658d1d704cd6caf84dd64eddafbff7)
-rw-r--r-- | libglusterfs/src/syscall.c | 3 | ||||
-rw-r--r-- | tests/basic/gfapi/gfapi-copy-file-range.t | 16 | ||||
-rw-r--r-- | xlators/storage/posix/src/posix-inode-fd-ops.c | 3 |
3 files changed, 12 insertions, 10 deletions
diff --git a/libglusterfs/src/syscall.c b/libglusterfs/src/syscall.c index 1d88c8adac1..e8ec24b7855 100644 --- a/libglusterfs/src/syscall.c +++ b/libglusterfs/src/syscall.c @@ -828,7 +828,8 @@ sys_copy_file_range(int fd_in, off64_t *off_in, int fd_out, off64_t *off_out, return syscall(SYS_copy_file_range, fd_in, off_in, fd_out, off_out, len, flags); #else - return -ENOSYS; + errno = ENOSYS; + return -1; #endif /* HAVE_COPY_FILE_RANGE_SYS */ #endif /* HAVE_COPY_FILE_RANGE */ } diff --git a/tests/basic/gfapi/gfapi-copy-file-range.t b/tests/basic/gfapi/gfapi-copy-file-range.t index c24c1433edf..a56d3a58e07 100644 --- a/tests/basic/gfapi/gfapi-copy-file-range.t +++ b/tests/basic/gfapi/gfapi-copy-file-range.t @@ -5,20 +5,22 @@ cleanup; +mkfs.xfs 2>&1 | grep reflink +if [ $? -ne 0 ]; then + SKIP_TESTS + exit +fi + + TEST glusterd +TEST truncate -s 2G $B0/xfs_image # for now, a xfs filesystem with reflink support is created. # In future, better to make changes in MKFS_LOOP so that, # once can create a xfs filesystem with reflink enabled in # generic and simple way, instead of doing below steps each # time. -TEST truncate -s 2G $B0/xfs_image -mkfs.xfs 2>&1 | grep reflink -if [ $? -eq 0 ]; then - mkfs.xfs -f -i size=512 -m reflink=1 $B0/xfs_image; -else - mkfs.xfs -f -i size=512 $B0/xfs_image; -fi +TEST mkfs.xfs -f -i size=512 -m reflink=1 $B0/xfs_image; TEST mkdir $B0/bricks TEST mount -t xfs -o loop $B0/xfs_image $B0/bricks diff --git a/xlators/storage/posix/src/posix-inode-fd-ops.c b/xlators/storage/posix/src/posix-inode-fd-ops.c index 076f0050cf4..1d69be652f4 100644 --- a/xlators/storage/posix/src/posix-inode-fd-ops.c +++ b/xlators/storage/posix/src/posix-inode-fd-ops.c @@ -2098,8 +2098,7 @@ posix_copy_file_range(call_frame_t *frame, xlator_t *this, fd_t *fd_in, flags); if (op_ret < 0) { - op_errno = -op_ret; - op_ret = -1; + op_errno = errno; gf_msg(this->name, GF_LOG_ERROR, op_errno, P_MSG_COPY_FILE_RANGE_FAILED, "copy_file_range failed: fd_in: %p (gfid: %s) ," " fd_out %p (gfid:%s)", |