From: Dennis Schafroth Date: Tue, 30 Jun 2015 18:10:19 +0000 (+0200) Subject: os/FileStore: fail with ENOTSUP if using sparse files on DARWIN X-Git-Tag: v9.1.0~259^2~43 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=17db469e9c17b958d318a7552b92e3e8d1225866;p=ceph.git os/FileStore: fail with ENOTSUP if using sparse files on DARWIN For now, fail with Not supported (ENOTSUP) if configured using sparse files on DARWIN. Signed-off-by: Dennis Schafroth --- diff --git a/src/os/GenericFileStoreBackend.cc b/src/os/GenericFileStoreBackend.cc index 508f533ab2f6..9d74df769e07 100644 --- a/src/os/GenericFileStoreBackend.cc +++ b/src/os/GenericFileStoreBackend.cc @@ -281,11 +281,15 @@ int GenericFileStoreBackend::do_fiemap(int fd, off_t start, size_t len, struct f fiemap->fm_length = len + start % CEPH_PAGE_SIZE; fiemap->fm_flags = FIEMAP_FLAG_SYNC; /* flush extents to disk if needed */ +#if defined(DARWIN) + ret = -ENOTSUP; + goto done_err; +#else if (ioctl(fd, FS_IOC_FIEMAP, fiemap) < 0) { ret = -errno; goto done_err; } - +#endif size = sizeof(struct fiemap_extent) * (fiemap->fm_mapped_extents); _realloc_fiemap = (struct fiemap *)realloc(fiemap, sizeof(struct fiemap) + size); @@ -301,12 +305,16 @@ int GenericFileStoreBackend::do_fiemap(int fd, off_t start, size_t len, struct f fiemap->fm_extent_count = fiemap->fm_mapped_extents; fiemap->fm_mapped_extents = 0; +#if defined(DARWIN) + ret = -ENOTSUP; + goto done_err; +#else if (ioctl(fd, FS_IOC_FIEMAP, fiemap) < 0) { ret = -errno; goto done_err; } *pfiemap = fiemap; - +#endif return 0; done_err: