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
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Gluster-devel mailing list Gluster-devel@xxxxxxxxxxx http://www.gluster.org/mailman/listinfo/gluster-devel