[Gluster-devel] Patches for supporting lseek() with SEEK_DATA/SEEK_HOLE available for review

Niels de Vos ndevos at redhat.com
Wed Jan 27 12:04:17 UTC 2016


Hi all,

yesterday I have posted the latest version of a series that implements
support for lseek() with SEEK_DATA/SEEK_HOLE. This functionality can
improve the handling of sparse files immensely.

Please review the changes that involve components if your interest:

  http://review.gluster.org/#/q/status:open+project:glusterfs+branch:master+topic:bug-1220173

Once these changes made it in, we can detect holes with glfs_lseek() and
can improve NFS-Ganesha, QEMU, Samba and glusterfs-coreutils. There are
probably other projects where we should contribute improvements for
SEEK_DATA/SEEK_HOLE (like 'cp' from coreutils?).

Ravi already got his Linux kernel FUSE patch merged, kernel-4.5 will
support lseek() through FUSE as well:

  http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/fs/fuse?id=0b5da8db145bfd44266ac964a2636a0cf8d7c286

Eventhough this is a fairly basic (though relatively new) filesystem
functionality, I want to document it in a feature page in our
glusterfs-specs repository:

  https://github.com/gluster/glusterfs-specs

Once the document is posted in Gerrit, I'll send a reply to this email
to get some more reviews.

Thanks,
Niels


Note to other maintainers:

There is some order of merging changes needed. A new FOP has been
added, and some patches depend on the new GF_FOP_SEEK or other core
bits.

    Change-Id: I4b74fce8b0bad2f45291fd2c2b9e243c4f4a1aa9
           core: add seek() FOP

    Change-Id: I0c15153beb27de73d5844b6f692175750fc28f60
           syncop: add seek() FOP

    Change-Id: I060768a8a4b9b1c80f4a24c0f17d630f7f028690
           protocol: implement seek() FOP

    Change-Id: I100b741d9bfacb799df318bb081f2497c0664927
           afr: add seek() FOP

    Change-Id: Iaa23ba81df4ee78ddaab1f96b3d926a563b4bb3d
           cluster/ec: add seek() FOP

    Change-Id: I5c272855a21501ac31e1a5f4b68ed7245582c17c
           shard: add seek() FOP as not supported

    Change-Id: I5d15533c53fd710497f97c3cb4a8ea29fba47271
           posix: implement seek() FOP

    Change-Id: Ic86919d28cf639b561114dc1440c6ea4bc6f7307
           upcall: add seek() FOP

    Change-Id: I142dde11923244809b03fcca8cd4c2f7d5ff3929
           gfapi: add support for SEEK_HOLE and SEEK_DATA in

    Change-Id: I8d0573ed8b2ea5ce976ad140a24be7974dbad0e3
           gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE

    Change-Id: I58c74e161638b2d4ce12fc91a206fdc1b96de14d
           fuse: update fuse_kernel.h to version 23

    Change-Id: I12496d788e59461a3023ddd30e0ea3179007f77e
           fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()

    Change-Id: Ifdee3c793e33f9d763940130e8d01a61eae5498a
           tests: add seek program for testing SEEK_DATA/SEEK_HOLE over

    Change-Id: I9cfed795737609120eafe86f9287d79057b14fe2
           stripe: add seek() FOP as not supported
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://www.gluster.org/pipermail/gluster-devel/attachments/20160127/bf7155ea/attachment.sig>


More information about the Gluster-devel mailing list