Bug 1220173 - SEEK_HOLE support (optimization)
Summary: SEEK_HOLE support (optimization)
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: core
Version: mainline
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Niels de Vos
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: 1301332 1301647 1302149 glusterfs-3.8.0
TreeView+ depends on / blocked
 
Reported: 2015-05-10 17:55 UTC by Christopher Pereira
Modified: 2018-09-12 13:18 UTC (History)
9 users (show)

Fixed In Version: glusterfs-3.8rc2
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-06-16 13:00:02 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Christopher Pereira 2015-05-10 17:55:21 UTC
Gluster is currently not supporting SEEK_HOLE support which will boost performance when working with sparse VM images.

I did a local sparse image copy benchmark copying from a gluster mount (of a
local gluster-server) vs copying directly from the gluster-brick to test
SEEK_HOLE support and performance.
Motivation : VM's image files are sparse.
Benchmark:

   cp /mnt/gluster-mount/image to /tmp/
   => takes 1m31.586s

   cp /mnt/ext4/gluster-brick/image to /tmp/
   => takes 0m29.215s (3 times faster!)

Target: sparse qcow2 image file

logic size: 30G
physic size: 1.9G

Commands like 'cp' call lseek(NEXT_HOLE) and lssek(SEEK_DATA) to skip
useless zeros on modern filesystems [1].

See also [2].

Setting to low prio, since it's an optimization.
Please feel free to change the prio according to the current project goals.

[1] lseek & SEEK_HOLE: http://linux.die.net/man/2/lseek

[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.devel/10884

Comment 1 Christopher Pereira 2015-05-11 00:49:09 UTC
Besides not using SEEK_HOLE/SEEK_DATA to optimize disk IO, I also discovered that GB of zeros are send through the network. That hurts.

To reproduce:

- mount a remote gluster volume
- cp a sparse image from the mounted volume to /tmp
- check transfer rates with iptraf

Results:

- holes (GB full of zeros) are transfered via network as raw data

Expected results:

- holes should not be transmited as raw data ("000000000000000...")
- gluster's protocol should send a message like "repeeat 2000 GB of zeros"

Please note that one thing is that gluster client is not supporting SEEK_HOLE, and other thing is that holes are sent as raw.

Benefits:

- With this optimization, you could copy normal sparse images in seconds instead of hours!

Moving prio to high, becuase of the big possitive impact for GlusterFS.

Comment 2 Kaleb KEITHLEY 2015-05-19 12:25:27 UTC
which version is this referring to? 3.7.0betaX?

Comment 3 Niels de Vos 2015-05-19 12:27:47 UTC
NFS 4.2(?) will include READ_PLUS, we could use a similar procedure in GlusterFS

Comment 4 Niels de Vos 2015-05-19 12:28:41 UTC
(In reply to Kaleb KEITHLEY from comment #2)
> which version is this referring to? 3.7.0betaX?

Looks like an RFE, it will be done for mainline :-)

Comment 5 Niels de Vos 2015-05-23 12:01:39 UTC
SEEK description for NFSv4.2:

    https://tools.ietf.org/html/draft-ietf-nfsv4-minorversion2-38#section-15.11

READ_PLUS which returns a list of data-regions:

    https://tools.ietf.org/html/draft-ietf-nfsv4-minorversion2-38#section-15.10


Implementing SEEK is surely easier than READ_PLUS, and may be sufficient for improving performance for files with sparse regions.

Comment 6 Christopher Pereira 2015-06-20 16:17:05 UTC
Hi,

Any planning or progress with this one?

I wonder if classifying as "Enhancement" is fair enough, because not supporting sparse image files is a blocker for using GlusterFS for virtualization since people would (and probably *should*) move to other VM storage solutions that support sparse image data (Ceph?), so copying VM storage takes only minutes instead of hours or days.

As a workarround, we are copying files directly from the bricks instead of the gluster mounts for logically very big / physically small sparse files, but all glusterfs related storage operations implemented in oVirt turn useless in this situation because of task timeouts, unacceptable VM downtimes and resources overhead.

Comment 7 Niels de Vos 2015-06-21 15:27:34 UTC
It seems that FUSE in the Linux kernel does not pass llseek() on to the userspace filesystem daemon:

    http://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tree/fs/fuse/file.c#n2234

We can add the seek() operation to Gluster, but this is not sufficient yet. If the Gluster processes do not get the operation passed on, there will be no way for the application to do a SEEK_HOLE/SEEK_DATA.

Extending libgfapi with the functionality could be made available quicker. Applications (like qemu-img) using libgfapi to access VM-images on Gluster would be able to call glfs_seek() and benefit from it.

Comment 8 Niels de Vos 2015-06-21 16:23:38 UTC
I'll probably see if I can add the Gluster side of things soon. Lets see if the Linux FUSE people have any objections for adding seek() to FUSE:

    http://thread.gmane.org/gmane.comp.file-systems.fuse.devel/14741

Comment 9 Christopher Pereira 2015-06-25 05:47:52 UTC
Niels & Ravi, this are great news!
oVirt is using qemu-img with FUSE.
Please let me know once we can start testing.

Comment 10 Anand Avati 2015-07-01 04:36:48 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for lseek) posted (#1) for review on master by Ravishankar N (ravishankar)

Comment 11 Anand Avati 2015-07-01 06:44:50 UTC
REVIEW: http://review.gluster.org/11483 (afr: add seek() FOP) posted (#1) for review on master by Niels de Vos (ndevos)

Comment 12 Anand Avati 2015-07-01 06:45:25 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#1) for review on master by Niels de Vos (ndevos)

Comment 13 Anand Avati 2015-07-01 06:45:35 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#1) for review on master by Niels de Vos (ndevos)

Comment 14 Anand Avati 2015-07-01 17:01:52 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#1) for review on master by Xavier Hernandez (xhernandez)

Comment 15 Anand Avati 2015-07-01 19:30:29 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 16 Anand Avati 2015-07-01 19:30:32 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for lseek) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 17 Anand Avati 2015-07-01 19:30:34 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 18 Anand Avati 2015-07-01 19:30:41 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 19 Anand Avati 2015-07-01 19:30:44 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 20 Anand Avati 2015-07-05 22:36:55 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#3) for review on master by Niels de Vos (ndevos)

Comment 21 Anand Avati 2015-07-05 22:36:59 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#3) for review on master by Niels de Vos (ndevos)

Comment 22 Anand Avati 2015-07-05 22:37:23 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#3) for review on master by Niels de Vos (ndevos)

Comment 23 Anand Avati 2015-07-05 22:37:28 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#3) for review on master by Niels de Vos (ndevos)

Comment 24 Anand Avati 2015-07-05 22:38:01 UTC
REVIEW: http://review.gluster.org/11482 (protocol: implement seek() FOP) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 25 Anand Avati 2015-07-05 22:38:03 UTC
REVIEW: http://review.gluster.org/11483 (afr: add seek() FOP) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 26 Anand Avati 2015-07-05 22:38:06 UTC
REVIEW: http://review.gluster.org/11480 (core: add seek() FOP) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 27 Anand Avati 2015-07-05 22:38:08 UTC
REVIEW: http://review.gluster.org/11481 (syncop: add seek() FOP) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 28 Anand Avati 2015-07-05 22:38:14 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#1) for review on master by Niels de Vos (ndevos)

Comment 29 Anand Avati 2015-07-17 11:33:45 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#4) for review on master by Xavier Hernandez (xhernandez)

Comment 30 Anand Avati 2015-07-17 11:33:54 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#4) for review on master by Xavier Hernandez (xhernandez)

Comment 31 Anand Avati 2015-07-17 11:33:57 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#2) for review on master by Xavier Hernandez (xhernandez)

Comment 32 Anand Avati 2015-07-17 11:34:20 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#4) for review on master by Xavier Hernandez (xhernandez)

Comment 33 Anand Avati 2015-07-17 11:34:54 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#4) for review on master by Xavier Hernandez (xhernandez)

Comment 34 Anand Avati 2015-07-17 11:34:57 UTC
REVIEW: http://review.gluster.org/11482 (protocol: implement seek() FOP) posted (#3) for review on master by Xavier Hernandez (xhernandez)

Comment 35 Anand Avati 2015-07-17 11:35:05 UTC
REVIEW: http://review.gluster.org/11483 (afr: add seek() FOP) posted (#3) for review on master by Xavier Hernandez (xhernandez)

Comment 36 Anand Avati 2015-07-17 11:35:08 UTC
REVIEW: http://review.gluster.org/11480 (core: add seek() FOP) posted (#3) for review on master by Xavier Hernandez (xhernandez)

Comment 37 Anand Avati 2015-07-17 11:35:10 UTC
REVIEW: http://review.gluster.org/11481 (syncop: add seek() FOP) posted (#3) for review on master by Xavier Hernandez (xhernandez)

Comment 38 Anand Avati 2015-07-17 11:49:55 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#3) for review on master by Xavier Hernandez (xhernandez)

Comment 39 Anand Avati 2015-07-17 11:49:58 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#5) for review on master by Xavier Hernandez (xhernandez)

Comment 40 Anand Avati 2015-07-17 11:50:09 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#5) for review on master by Xavier Hernandez (xhernandez)

Comment 41 Anand Avati 2015-07-17 11:50:15 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#5) for review on master by Xavier Hernandez (xhernandez)

Comment 42 Deepak C Shetty 2015-07-17 12:31:12 UTC
(In reply to Christopher Pereira from comment #1)
> Besides not using SEEK_HOLE/SEEK_DATA to optimize disk IO, I also discovered
> that GB of zeros are send through the network. That hurts.
> 
> To reproduce:
> 
> - mount a remote gluster volume
> - cp a sparse image from the mounted volume to /tmp

cp doesn't understand qcow2 format, but if we use qemu-nbd to create a 
local block device (say /dev/nbdX) thats backed by .qcow2 file, then
dd (with or without conv=sparse) might work ? I m curious to know. Have you
tried this already ?

thanx,
deepak

Comment 43 Sven Kieske 2015-07-17 14:46:45 UTC
shouldn't the use of qemu-img solve this (at least for the ovirt use case with gluster)?

Comment 44 Christopher Pereira 2015-07-18 08:02:49 UTC
(In reply to Deepak C Shetty from comment #42)
> (In reply to Christopher Pereira from comment #1)
> > Besides not using SEEK_HOLE/SEEK_DATA to optimize disk IO, I also discovered
> > that GB of zeros are send through the network. That hurts.
> > 
> > To reproduce:
> > 
> > - mount a remote gluster volume
> > - cp a sparse image from the mounted volume to /tmp
> 
> cp doesn't understand qcow2 format, but if we use qemu-nbd to create a 
> local block device (say /dev/nbdX) thats backed by .qcow2 file, then
> dd (with or without conv=sparse) might work ? I m curious to know. Have you
> tried this already ?
> 
> thanx,
> deepak

Hi Deepack,

Sparse files (or "holes") filesystem support [1] and qcow's on-demand space allocation are two different implementations for solving the same problem.

Yes, qcow files shouldn't have this performance problem.

I wonder where I got this raw image file from.
I guess it was generated by virt-v2v while importing a vmdk image into ovirt.
I wouldn't mind if all images were in qcow2 format.

I also wonder if there is any way to convert images from raw to qcow2 in oVirt.

[1] : https://en.wikipedia.org/wiki/Sparse_file

Comment 45 Anand Avati 2015-07-18 12:16:24 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#6) for review on master by Niels de Vos (ndevos)

Comment 46 Anand Avati 2015-07-18 12:16:30 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#6) for review on master by Niels de Vos (ndevos)

Comment 47 Anand Avati 2015-07-18 12:17:39 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#6) for review on master by Niels de Vos (ndevos)

Comment 48 Anand Avati 2015-07-18 12:17:42 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#6) for review on master by Niels de Vos (ndevos)

Comment 49 Anand Avati 2015-07-18 12:17:44 UTC
REVIEW: http://review.gluster.org/11482 (protocol: implement seek() FOP) posted (#4) for review on master by Niels de Vos (ndevos)

Comment 50 Anand Avati 2015-07-18 12:17:47 UTC
REVIEW: http://review.gluster.org/11483 (afr: add seek() FOP) posted (#4) for review on master by Niels de Vos (ndevos)

Comment 51 Anand Avati 2015-07-18 12:17:51 UTC
REVIEW: http://review.gluster.org/11480 (core: add seek() FOP) posted (#4) for review on master by Niels de Vos (ndevos)

Comment 52 Anand Avati 2015-07-18 12:17:54 UTC
REVIEW: http://review.gluster.org/11481 (syncop: add seek() FOP) posted (#4) for review on master by Niels de Vos (ndevos)

Comment 53 Anand Avati 2015-07-18 14:12:08 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#7) for review on master by Niels de Vos (ndevos)

Comment 54 Anand Avati 2015-07-18 14:12:11 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#5) for review on master by Niels de Vos (ndevos)

Comment 55 Anand Avati 2015-07-18 14:12:15 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#7) for review on master by Niels de Vos (ndevos)

Comment 56 Anand Avati 2015-07-19 10:44:54 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#8) for review on master by Niels de Vos (ndevos)

Comment 57 Anand Avati 2015-07-19 10:44:57 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#6) for review on master by Niels de Vos (ndevos)

Comment 58 Anand Avati 2015-07-19 10:45:02 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#8) for review on master by Niels de Vos (ndevos)

Comment 59 Anand Avati 2015-07-19 10:45:05 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#8) for review on master by Niels de Vos (ndevos)

Comment 60 Anand Avati 2015-07-19 10:45:08 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#8) for review on master by Niels de Vos (ndevos)

Comment 61 Anand Avati 2015-07-19 15:39:41 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#7) for review on master by Niels de Vos (ndevos)

Comment 62 Anand Avati 2015-07-19 15:39:44 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#9) for review on master by Niels de Vos (ndevos)

Comment 63 Anand Avati 2015-07-19 15:39:49 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#7) for review on master by Niels de Vos (ndevos)

Comment 64 Anand Avati 2015-07-19 15:39:53 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#9) for review on master by Niels de Vos (ndevos)

Comment 65 Anand Avati 2015-07-19 15:39:56 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#9) for review on master by Niels de Vos (ndevos)

Comment 66 Anand Avati 2015-07-19 15:41:02 UTC
REVIEW: http://review.gluster.org/11483 (afr: add seek() FOP) posted (#5) for review on master by Niels de Vos (ndevos)

Comment 67 Anand Avati 2015-07-19 15:41:05 UTC
REVIEW: http://review.gluster.org/11480 (core: add seek() FOP) posted (#5) for review on master by Niels de Vos (ndevos)

Comment 68 Anand Avati 2015-07-19 15:41:07 UTC
REVIEW: http://review.gluster.org/11481 (syncop: add seek() FOP) posted (#5) for review on master by Niels de Vos (ndevos)

Comment 69 Anand Avati 2015-07-19 21:11:43 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#10) for review on master by Niels de Vos (ndevos)

Comment 70 Anand Avati 2015-07-19 21:11:46 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#8) for review on master by Niels de Vos (ndevos)

Comment 71 Anand Avati 2015-07-19 21:11:49 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#10) for review on master by Niels de Vos (ndevos)

Comment 72 Anand Avati 2015-07-19 21:11:57 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#10) for review on master by Niels de Vos (ndevos)

Comment 73 Christopher Pereira 2015-09-29 13:43:43 UTC
Hi,

Any chance to get this in 3.7?
May I help with QA on CentOS 7?

Best regards,
Christopher

Comment 74 Vijay Bellur 2015-12-18 19:38:47 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#8) for review on master by Niels de Vos (ndevos)

Comment 75 Vijay Bellur 2015-12-18 19:38:53 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#11) for review on master by Niels de Vos (ndevos)

Comment 76 Vijay Bellur 2015-12-18 19:38:58 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#9) for review on master by Niels de Vos (ndevos)

Comment 77 Vijay Bellur 2015-12-18 19:39:04 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#11) for review on master by Niels de Vos (ndevos)

Comment 78 Vijay Bellur 2015-12-18 19:39:11 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#11) for review on master by Niels de Vos (ndevos)

Comment 79 Vijay Bellur 2015-12-18 19:39:15 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#11) for review on master by Niels de Vos (ndevos)

Comment 80 Vijay Bellur 2015-12-18 19:39:22 UTC
REVIEW: http://review.gluster.org/11482 (protocol: implement seek() FOP) posted (#6) for review on master by Niels de Vos (ndevos)

Comment 81 Vijay Bellur 2015-12-18 19:39:28 UTC
REVIEW: http://review.gluster.org/11483 (afr: add seek() FOP) posted (#6) for review on master by Niels de Vos (ndevos)

Comment 82 Vijay Bellur 2015-12-18 19:39:39 UTC
REVIEW: http://review.gluster.org/11480 (core: add seek() FOP) posted (#6) for review on master by Niels de Vos (ndevos)

Comment 83 Vijay Bellur 2015-12-18 19:39:44 UTC
REVIEW: http://review.gluster.org/11481 (syncop: add seek() FOP) posted (#6) for review on master by Niels de Vos (ndevos)

Comment 84 Niels de Vos 2016-01-24 09:55:54 UTC
Great Ravi! Your patch for Linux FUSE is merged in Linus' tree and will be included in v4.5:

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

Comment 85 Ravishankar N 2016-01-25 01:13:53 UTC
(In reply to Niels de Vos from comment #84)
> Great Ravi! Your patch for Linux FUSE is merged in Linus' tree and will be
> included in v4.5:
> 
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/fs/
> fuse?id=0b5da8db145bfd44266ac964a2636a0cf8d7c286

Finally! I'm happy Niels, time to get the gluster patches in. :)

Comment 86 Christopher Pereira 2016-01-25 15:37:11 UTC
Congratulations Ravi and Niels!

Comment 87 Vijay Bellur 2016-01-25 16:03:29 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#9) for review on master by Niels de Vos (ndevos)

Comment 88 Vijay Bellur 2016-01-25 16:03:34 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#12) for review on master by Niels de Vos (ndevos)

Comment 89 Vijay Bellur 2016-01-25 16:03:39 UTC
REVIEW: http://review.gluster.org/13005 (upcall: add seek() FOP) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 90 Vijay Bellur 2016-01-25 16:04:22 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#10) for review on master by Niels de Vos (ndevos)

Comment 91 Vijay Bellur 2016-01-25 16:04:27 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#12) for review on master by Niels de Vos (ndevos)

Comment 92 Vijay Bellur 2016-01-25 16:04:31 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#12) for review on master by Niels de Vos (ndevos)

Comment 93 Vijay Bellur 2016-01-25 16:04:36 UTC
REVIEW: http://review.gluster.org/11482 (protocol: implement seek() FOP) posted (#7) for review on master by Niels de Vos (ndevos)

Comment 94 Vijay Bellur 2016-01-25 16:04:40 UTC
REVIEW: http://review.gluster.org/11483 (afr: add seek() FOP) posted (#7) for review on master by Niels de Vos (ndevos)

Comment 95 Vijay Bellur 2016-01-25 16:04:45 UTC
REVIEW: http://review.gluster.org/11480 (core: add seek() FOP) posted (#7) for review on master by Niels de Vos (ndevos)

Comment 96 Vijay Bellur 2016-01-25 16:04:49 UTC
REVIEW: http://review.gluster.org/11481 (syncop: add seek() FOP) posted (#7) for review on master by Niels de Vos (ndevos)

Comment 97 Vijay Bellur 2016-01-25 16:04:54 UTC
REVIEW: http://review.gluster.org/13290 (shard: add seek() FOP as not supported) posted (#1) for review on master by Niels de Vos (ndevos)

Comment 98 Vijay Bellur 2016-01-25 16:04:59 UTC
REVIEW: http://review.gluster.org/13291 (tests: add seek program for testing SEEK_DATA/SEEK_HOLE over FUSE) posted (#1) for review on master by Niels de Vos (ndevos)

Comment 99 Vijay Bellur 2016-01-25 16:16:34 UTC
REVIEW: http://review.gluster.org/13290 (shard: add seek() FOP as not supported) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 100 Vijay Bellur 2016-01-25 16:16:40 UTC
REVIEW: http://review.gluster.org/13291 (tests: add seek program for testing SEEK_DATA/SEEK_HOLE over FUSE) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 101 Vijay Bellur 2016-01-25 16:16:45 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#10) for review on master by Niels de Vos (ndevos)

Comment 102 Vijay Bellur 2016-01-25 16:16:51 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#13) for review on master by Niels de Vos (ndevos)

Comment 103 Vijay Bellur 2016-01-25 16:17:47 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#13) for review on master by Niels de Vos (ndevos)

Comment 104 Vijay Bellur 2016-01-25 16:17:52 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#11) for review on master by Niels de Vos (ndevos)

Comment 105 Vijay Bellur 2016-01-25 16:17:56 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#13) for review on master by Niels de Vos (ndevos)

Comment 106 Vijay Bellur 2016-01-25 16:18:02 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#13) for review on master by Niels de Vos (ndevos)

Comment 107 Vijay Bellur 2016-01-25 16:18:07 UTC
REVIEW: http://review.gluster.org/11482 (protocol: implement seek() FOP) posted (#8) for review on master by Niels de Vos (ndevos)

Comment 108 Vijay Bellur 2016-01-25 16:18:13 UTC
REVIEW: http://review.gluster.org/11483 (afr: add seek() FOP) posted (#8) for review on master by Niels de Vos (ndevos)

Comment 109 Vijay Bellur 2016-01-25 16:18:19 UTC
REVIEW: http://review.gluster.org/11480 (core: add seek() FOP) posted (#8) for review on master by Niels de Vos (ndevos)

Comment 110 Vijay Bellur 2016-01-25 16:18:23 UTC
REVIEW: http://review.gluster.org/11481 (syncop: add seek() FOP) posted (#8) for review on master by Niels de Vos (ndevos)

Comment 111 Vijay Bellur 2016-01-26 08:47:29 UTC
REVIEW: http://review.gluster.org/13290 (shard: add seek() FOP as not supported) posted (#3) for review on master by Niels de Vos (ndevos)

Comment 112 Vijay Bellur 2016-01-26 08:47:34 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#11) for review on master by Niels de Vos (ndevos)

Comment 113 Vijay Bellur 2016-01-26 08:47:38 UTC
REVIEW: http://review.gluster.org/13005 (upcall: add seek() FOP) posted (#4) for review on master by Niels de Vos (ndevos)

Comment 114 Vijay Bellur 2016-01-26 08:47:42 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#14) for review on master by Niels de Vos (ndevos)

Comment 115 Vijay Bellur 2016-01-26 08:47:47 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#14) for review on master by Niels de Vos (ndevos)

Comment 116 Vijay Bellur 2016-01-26 08:47:51 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#14) for review on master by Niels de Vos (ndevos)

Comment 117 Vijay Bellur 2016-01-26 08:47:56 UTC
REVIEW: http://review.gluster.org/11482 (protocol: implement seek() FOP) posted (#9) for review on master by Niels de Vos (ndevos)

Comment 118 Vijay Bellur 2016-01-26 08:48:00 UTC
REVIEW: http://review.gluster.org/11483 (afr: add seek() FOP) posted (#9) for review on master by Niels de Vos (ndevos)

Comment 119 Vijay Bellur 2016-01-26 08:48:04 UTC
REVIEW: http://review.gluster.org/11480 (core: add seek() FOP) posted (#9) for review on master by Niels de Vos (ndevos)

Comment 120 Vijay Bellur 2016-01-26 08:48:08 UTC
REVIEW: http://review.gluster.org/11481 (syncop: add seek() FOP) posted (#9) for review on master by Niels de Vos (ndevos)

Comment 121 Vijay Bellur 2016-01-26 19:25:10 UTC
REVIEW: http://review.gluster.org/13290 (shard: add seek() FOP as not supported) posted (#4) for review on master by Niels de Vos (ndevos)

Comment 122 Vijay Bellur 2016-01-26 19:25:14 UTC
REVIEW: http://review.gluster.org/13291 (tests: add seek program for testing SEEK_DATA/SEEK_HOLE over FUSE) posted (#3) for review on master by Niels de Vos (ndevos)

Comment 123 Vijay Bellur 2016-01-26 19:25:18 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#12) for review on master by Niels de Vos (ndevos)

Comment 124 Vijay Bellur 2016-01-26 19:25:22 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#14) for review on master by Niels de Vos (ndevos)

Comment 125 Vijay Bellur 2016-01-26 19:25:25 UTC
REVIEW: http://review.gluster.org/13005 (upcall: add seek() FOP) posted (#5) for review on master by Niels de Vos (ndevos)

Comment 126 Vijay Bellur 2016-01-26 19:25:29 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#12) for review on master by Niels de Vos (ndevos)

Comment 127 Vijay Bellur 2016-01-26 19:25:36 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#15) for review on master by Niels de Vos (ndevos)

Comment 128 Vijay Bellur 2016-01-26 19:25:40 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#15) for review on master by Niels de Vos (ndevos)

Comment 129 Vijay Bellur 2016-01-26 19:25:44 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#15) for review on master by Niels de Vos (ndevos)

Comment 130 Vijay Bellur 2016-01-26 19:25:48 UTC
REVIEW: http://review.gluster.org/11482 (protocol: implement seek() FOP) posted (#10) for review on master by Niels de Vos (ndevos)

Comment 131 Vijay Bellur 2016-01-26 19:25:52 UTC
REVIEW: http://review.gluster.org/11483 (afr: add seek() FOP) posted (#10) for review on master by Niels de Vos (ndevos)

Comment 132 Vijay Bellur 2016-01-26 19:25:56 UTC
REVIEW: http://review.gluster.org/11480 (core: add seek() FOP) posted (#10) for review on master by Niels de Vos (ndevos)

Comment 133 Vijay Bellur 2016-01-26 19:26:00 UTC
REVIEW: http://review.gluster.org/11481 (syncop: add seek() FOP) posted (#10) for review on master by Niels de Vos (ndevos)

Comment 134 Vijay Bellur 2016-01-26 22:21:33 UTC
REVIEW: http://review.gluster.org/13291 (tests: add seek program for testing SEEK_DATA/SEEK_HOLE over FUSE) posted (#4) for review on master by Niels de Vos (ndevos)

Comment 135 Vijay Bellur 2016-01-26 22:21:38 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#15) for review on master by Niels de Vos (ndevos)

Comment 136 Vijay Bellur 2016-01-27 09:38:09 UTC
COMMIT: http://review.gluster.org/13290 committed in master by Pranith Kumar Karampuri (pkarampu) 
------
commit 2ce3daa94066dcc77cdc6b54a31747b6c7c0c2fc
Author: Niels de Vos <ndevos>
Date:   Fri Dec 18 21:41:04 2015 +0100

    shard: add seek() FOP as not supported
    
    For getting basic support for SEEK_DATA/SEEK_HOLE, sharding has not been
    implemented. Bug 1301647 has been filed to get this new feature in
    sharding as well.
    
    BUG: 1220173
    Change-Id: I5c272855a21501ac31e1a5f4b68ed7245582c17c
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/13290
    Smoke: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.com>
    Reviewed-by: Krutika Dhananjay <kdhananj>

Comment 137 Vijay Bellur 2016-01-27 11:50:36 UTC
REVIEW: http://review.gluster.org/13294 (stripe: add seek() FOP as not supported) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 138 Vijay Bellur 2016-01-31 11:32:23 UTC
COMMIT: http://review.gluster.org/11480 committed in master by Kaleb KEITHLEY (kkeithle) 
------
commit 0b6aba5ef63882e6a798a23de6f8efbb6bea0ea7
Author: Niels de Vos <ndevos>
Date:   Sun Jun 21 15:51:00 2015 +0200

    core: add seek() FOP
    
    Minimal infrastructure changes for the seek() FOP. This will provide
    SEEK_HOLE and SEEK_DATA functionalities.
    
    BUG: 1220173
    Change-Id: I4b74fce8b0bad2f45291fd2c2b9e243c4f4a1aa9
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/11480
    Smoke: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.com>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>

Comment 139 Vijay Bellur 2016-01-31 11:34:07 UTC
COMMIT: http://review.gluster.org/11481 committed in master by Kaleb KEITHLEY (kkeithle) 
------
commit b8a7b648d8f16999b00768d56f029b955c390eb7
Author: Niels de Vos <ndevos>
Date:   Sun Jun 21 17:51:24 2015 +0200

    syncop: add seek() FOP
    
    Add the new seek() FOP to the syncop framework. gfapi will use this in
    the future.
    
    Change-Id: I0c15153beb27de73d5844b6f692175750fc28f60
    BUG: 1220173
    Singed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/11481
    Smoke: Gluster Build System <jenkins.com>
    Tested-by: Niels de Vos <ndevos>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.com>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>

Comment 140 Vijay Bellur 2016-02-03 16:55:19 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#13) for review on master by Niels de Vos (ndevos)

Comment 141 Vijay Bellur 2016-02-03 16:55:24 UTC
REVIEW: http://review.gluster.org/13005 (upcall: add seek() FOP) posted (#6) for review on master by Niels de Vos (ndevos)

Comment 142 Vijay Bellur 2016-02-03 16:55:29 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#13) for review on master by Niels de Vos (ndevos)

Comment 143 Vijay Bellur 2016-02-03 16:55:33 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#16) for review on master by Niels de Vos (ndevos)

Comment 144 Vijay Bellur 2016-02-03 16:55:38 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#16) for review on master by Niels de Vos (ndevos)

Comment 145 Vijay Bellur 2016-02-03 16:55:41 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#16) for review on master by Niels de Vos (ndevos)

Comment 146 Vijay Bellur 2016-02-03 16:55:46 UTC
REVIEW: http://review.gluster.org/11482 (protocol: implement seek() FOP) posted (#11) for review on master by Niels de Vos (ndevos)

Comment 147 Vijay Bellur 2016-02-03 16:55:50 UTC
REVIEW: http://review.gluster.org/11483 (afr: add seek() FOP) posted (#11) for review on master by Niels de Vos (ndevos)

Comment 148 Vijay Bellur 2016-02-03 16:58:18 UTC
REVIEW: http://review.gluster.org/13291 (tests: add seek program for testing SEEK_DATA/SEEK_HOLE over FUSE) posted (#5) for review on master by Niels de Vos (ndevos)

Comment 149 Vijay Bellur 2016-02-03 16:58:23 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#14) for review on master by Niels de Vos (ndevos)

Comment 150 Vijay Bellur 2016-02-03 16:58:29 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#16) for review on master by Niels de Vos (ndevos)

Comment 151 Vijay Bellur 2016-02-03 16:58:38 UTC
REVIEW: http://review.gluster.org/13005 (upcall: add seek() FOP) posted (#7) for review on master by Niels de Vos (ndevos)

Comment 152 Vijay Bellur 2016-02-03 16:58:51 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#14) for review on master by Niels de Vos (ndevos)

Comment 153 Vijay Bellur 2016-02-03 16:59:19 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#17) for review on master by Niels de Vos (ndevos)

Comment 154 Vijay Bellur 2016-02-03 16:59:26 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#17) for review on master by Niels de Vos (ndevos)

Comment 155 Vijay Bellur 2016-02-03 16:59:30 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#17) for review on master by Niels de Vos (ndevos)

Comment 156 Vijay Bellur 2016-02-03 16:59:34 UTC
REVIEW: http://review.gluster.org/11482 (protocol: implement seek() FOP) posted (#12) for review on master by Niels de Vos (ndevos)

Comment 157 Vijay Bellur 2016-02-03 16:59:39 UTC
REVIEW: http://review.gluster.org/11483 (afr: add seek() FOP) posted (#12) for review on master by Niels de Vos (ndevos)

Comment 158 Vijay Bellur 2016-02-03 16:59:51 UTC
REVIEW: http://review.gluster.org/13347 (shard: add seek() FOP as not supported) posted (#1) for review on master by Niels de Vos (ndevos)

Comment 159 Vijay Bellur 2016-02-03 22:30:04 UTC
REVIEW: http://review.gluster.org/13291 (tests: add seek program for testing SEEK_DATA/SEEK_HOLE over FUSE) posted (#6) for review on master by Niels de Vos (ndevos)

Comment 160 Vijay Bellur 2016-02-03 22:30:11 UTC
REVIEW: http://review.gluster.org/11494 (cluster/ec: add seek() FOP) posted (#15) for review on master by Niels de Vos (ndevos)

Comment 161 Vijay Bellur 2016-02-03 22:30:15 UTC
REVIEW: http://review.gluster.org/11474 (fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()) posted (#17) for review on master by Niels de Vos (ndevos)

Comment 162 Vijay Bellur 2016-02-03 22:30:19 UTC
REVIEW: http://review.gluster.org/13005 (upcall: add seek() FOP) posted (#8) for review on master by Niels de Vos (ndevos)

Comment 163 Vijay Bellur 2016-02-03 22:30:23 UTC
REVIEW: http://review.gluster.org/11537 (fuse: update fuse_kernel.h to version 23) posted (#15) for review on master by Niels de Vos (ndevos)

Comment 164 Vijay Bellur 2016-02-03 22:30:28 UTC
REVIEW: http://review.gluster.org/11486 (gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE) posted (#18) for review on master by Niels de Vos (ndevos)

Comment 165 Vijay Bellur 2016-02-03 22:30:32 UTC
REVIEW: http://review.gluster.org/13347 (shard: add seek() FOP as not supported) posted (#2) for review on master by Niels de Vos (ndevos)

Comment 166 Vijay Bellur 2016-02-03 22:30:36 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#18) for review on master by Niels de Vos (ndevos)

Comment 167 Vijay Bellur 2016-02-03 22:30:40 UTC
REVIEW: http://review.gluster.org/11485 (gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()) posted (#18) for review on master by Niels de Vos (ndevos)

Comment 168 Vijay Bellur 2016-02-03 22:30:44 UTC
REVIEW: http://review.gluster.org/11482 (protocol: implement seek() FOP) posted (#13) for review on master by Niels de Vos (ndevos)

Comment 169 Vijay Bellur 2016-02-03 22:30:48 UTC
REVIEW: http://review.gluster.org/11483 (afr: add seek() FOP) posted (#13) for review on master by Niels de Vos (ndevos)

Comment 170 Vijay Bellur 2016-02-04 15:58:21 UTC
REVIEW: http://review.gluster.org/11484 (posix: implement seek() FOP) posted (#19) for review on master by Niels de Vos (ndevos)

Comment 171 Vijay Bellur 2016-02-04 17:21:32 UTC
COMMIT: http://review.gluster.org/11485 committed in master by Jeff Darcy (jdarcy) 
------
commit 5c39f43c13aa652b0db28ca7afea65982bd568cc
Author: Niels de Vos <ndevos>
Date:   Sun Jun 21 18:32:40 2015 +0200

    gfapi: add support for SEEK_HOLE and SEEK_DATA in glfs_lseek()
    
    Change-Id: I142dde11923244809b03fcca8cd4c2f7d5ff3929
    BUG: 1220173
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/11485
    Smoke: Gluster Build System <jenkins.com>
    Reviewed-by: jiffin tony Thottan <jthottan>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>
    CentOS-regression: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>

Comment 172 Vijay Bellur 2016-02-04 17:28:48 UTC
COMMIT: http://review.gluster.org/13005 committed in master by Jeff Darcy (jdarcy) 
------
commit c58f9ce4eefa62ab0ae78d318e443486c4f80a54
Author: Niels de Vos <ndevos>
Date:   Fri Dec 18 20:35:02 2015 +0100

    upcall: add seek() FOP
    
    Change-Id: Ic86919d28cf639b561114dc1440c6ea4bc6f7307
    BUG: 1220173
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/13005
    Smoke: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.com>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>
    Reviewed-by: Jeff Darcy <jdarcy>

Comment 173 Vijay Bellur 2016-02-04 17:29:55 UTC
COMMIT: http://review.gluster.org/13347 committed in master by Jeff Darcy (jdarcy) 
------
commit 41beab5444969f235c665042965a650b5a2866e6
Author: Niels de Vos <ndevos>
Date:   Wed Feb 3 17:15:03 2016 +0100

    shard: add seek() FOP as not supported
    
    For getting basic support for SEEK_DATA/SEEK_HOLE, sharding has not been
    implemented. Bug 1301647 has been filed to get this new feature in
    sharding as well.
    
    Because of a premature merge (and revert), this change is re-applying
    everything from commit 2ce3daa94066dcc77cdc6b54a31747b6c7c0c2fc again.
    
    BUG: 1220173
    Change-Id: I0fb2d36c65af5cb2d0a064104b74f7a863ec4ed3
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/13347
    Smoke: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.com>
    Reviewed-by: Jeff Darcy <jdarcy>

Comment 174 Vijay Bellur 2016-02-04 17:31:39 UTC
COMMIT: http://review.gluster.org/11482 committed in master by Jeff Darcy (jdarcy) 
------
commit 9b71092f3d6cea1cca4804b0588152c79bd34e1d
Author: Niels de Vos <ndevos>
Date:   Sun Jun 21 17:04:29 2015 +0200

    protocol: implement seek() FOP
    
    Network protocol extensions for the seek() FOP. The format is based on
    the SEEK procedure in NFSv4.2.
    
    Change-Id: I060768a8a4b9b1c80f4a24c0f17d630f7f028690
    BUG: 1220173
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/11482
    Smoke: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.com>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>
    Reviewed-by: Jeff Darcy <jdarcy>

Comment 175 Vijay Bellur 2016-02-04 22:35:45 UTC
COMMIT: http://review.gluster.org/11486 committed in master by Jeff Darcy (jdarcy) 
------
commit cdcd3dc96b412967ba68a56aa2607d86365fbfe6
Author: Niels de Vos <ndevos>
Date:   Sun Jun 21 23:36:12 2015 +0200

    gfapi: add test for glfs_lseek() SEEK_DATA/SEEK_HOLE
    
    Change-Id: I8d0573ed8b2ea5ce976ad140a24be7974dbad0e3
    BUG: 1220173
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/11486
    Smoke: Gluster Build System <jenkins.com>
    Reviewed-by: jiffin tony Thottan <jthottan>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>
    CentOS-regression: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    Reviewed-by: Jeff Darcy <jdarcy>

Comment 176 Vijay Bellur 2016-02-05 13:03:19 UTC
COMMIT: http://review.gluster.org/11494 committed in master by Jeff Darcy (jdarcy) 
------
commit 10da9812d83425cb3f2cc8385f94b2a4537d348f
Author: Xavier Hernandez <xhernandez>
Date:   Wed Jul 1 18:52:42 2015 +0200

    cluster/ec: add seek() FOP
    
    BUG: 1220173
    Change-Id: Iaa23ba81df4ee78ddaab1f96b3d926a563b4bb3d
    Signed-off-by: Xavier Hernandez <xhernandez>
    Reviewed-on: http://review.gluster.org/11494
    Smoke: Gluster Build System <jenkins.com>
    Tested-by: Niels de Vos <ndevos>
    CentOS-regression: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    Reviewed-by: Jeff Darcy <jdarcy>

Comment 177 Vijay Bellur 2016-02-05 13:05:30 UTC
COMMIT: http://review.gluster.org/11483 committed in master by Jeff Darcy (jdarcy) 
------
commit c8bbc24a8f3db253d9514210f8505e927bbbe7b0
Author: Niels de Vos <ndevos>
Date:   Sun Jun 21 20:29:07 2015 +0200

    afr: add seek() FOP
    
    seek() is like a read(), copied the same semantics.
    
    Change-Id: I100b741d9bfacb799df318bb081f2497c0664927
    BUG: 1220173
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/11483
    Smoke: Gluster Build System <jenkins.com>
    Reviewed-by: Pranith Kumar Karampuri <pkarampu>
    Tested-by: Pranith Kumar Karampuri <pkarampu>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.com>

Comment 178 Vijay Bellur 2016-02-05 15:00:56 UTC
COMMIT: http://review.gluster.org/13291 committed in master by Jeff Darcy (jdarcy) 
------
commit 4bde0b3db0e1f8fcbc782e29be2f2eb9e6d4c2fd
Author: Niels de Vos <ndevos>
Date:   Mon Jan 25 16:56:05 2016 +0100

    tests: add seek program for testing SEEK_DATA/SEEK_HOLE over FUSE
    
    Note that this only works on Linux kernel 4.5 and newer. The program is
    not run by a test-case because of this.
    
    BUG: 1220173
    Change-Id: Ifdee3c793e33f9d763940130e8d01a61eae5498a
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/13291
    Smoke: Gluster Build System <jenkins.com>
    CentOS-regression: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    Reviewed-by: Jeff Darcy <jdarcy>

Comment 179 Vijay Bellur 2016-02-07 05:56:59 UTC
COMMIT: http://review.gluster.org/11537 committed in master by Kaleb KEITHLEY (kkeithle) 
------
commit ff12c4a83bb897501f6e10c1bfe3a69f3dc6cdb9
Author: Ravishankar N <ravishankar>
Date:   Wed Jul 1 08:28:07 2015 +0530

    fuse: update fuse_kernel.h to version 23
    
    The following changes were made upstream:
     - add FUSE_WRITEBACK_CACHE
     - add time_gran to fuse_init_out
     - add reserved space to fuse_init_out
     - add FATTR_CTIME
     - add ctime and ctimensec to fuse_setattr_in
     - add FUSE_RENAME2 request
     - add FUSE_NO_OPEN_SUPPORT flag
    
    Including these changes will make it easier to backport support for
    lseek().
    
    Because the fuse_init_out structure changed its size, older versions of
    FUSE would fail initializing. When an older version of FUSE is detected,
    the fuse_init_out structure is reduced to the previous size. This is
    harmless, as the attributes that are not passed, are not used for
    earlier versions anyway.
    
    BUG: 1220173
    Change-Id: I58c74e161638b2d4ce12fc91a206fdc1b96de14d
    Signed-off-by: Ravishankar N <ravishankar>
    [ndevos: splitted from http://review.gluster.org/11474
             old version fuse_init_out size correction]
    Reviewed-on: http://review.gluster.org/11537
    Smoke: Gluster Build System <jenkins.com>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>
    CentOS-regression: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>

Comment 180 Vijay Bellur 2016-02-10 12:38:34 UTC
COMMIT: http://review.gluster.org/11484 committed in master by Jeff Darcy (jdarcy) 
------
commit 4b725f2576b06a739e159981c6124118e26ccfbd
Author: Niels de Vos <ndevos>
Date:   Sun Jun 21 16:59:15 2015 +0200

    posix: implement seek() FOP
    
    The only lseek() options we need are SEEK_HOLE and SEEK_DATA.
    
    Change-Id: I5d15533c53fd710497f97c3cb4a8ea29fba47271
    BUG: 1220173
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/11484
    Smoke: Gluster Build System <jenkins.com>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.com>
    Reviewed-by: Jeff Darcy <jdarcy>

Comment 181 Vijay Bellur 2016-02-11 06:16:54 UTC
COMMIT: http://review.gluster.org/11474 committed in master by Raghavendra G (rgowdapp) 
------
commit e501a7da4c50e2a2049a71119c25ed43b43f3395
Author: Niels de Vos <ndevos>
Date:   Mon Jul 6 00:01:44 2015 +0200

    fuse: add support for SEEK_HOLE and SEEK_DATA through lseek()
    
    The Linux FUSE kernel module has gained support for passing SEEK_HOLE
    and SEEK_DATA on through lseek(). This can greatly improve performance
    when working with sparse files.
    
    Linux FUSE introduced support for lseek() with version 4.5. The commit
    in mainline Linux is 0b5da8db145bfd44266ac964a2636a0cf8d7c286.
    
    URL: http://thread.gmane.org/gmane.comp.file-systems.fuse.devel/14752
    Change-Id: I12496d788e59461a3023ddd30e0ea3179007f77e
    BUG: 1220173
    Signed-off-by: Ravishankar N <ravishankar>
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/11474
    Smoke: Gluster Build System <jenkins.com>
    CentOS-regression: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    Reviewed-by: Raghavendra G <rgowdapp>

Comment 182 Niels de Vos 2016-02-11 11:43:30 UTC
All posted changes have been merged in the Gluster base. Steps that still need some work:

- backport kernel/FUSE changes to EL7 (EL6 does not have SEEK_DATA/HOLE at all?)
- add glfs_seek() in QEMU block/gluster.c
- add glfs_seek() in NFS-Ganesha FSAL_GLUSTER
- coreutils (cp binary) could use lseek() as fallback in extent_scan_read()
- ... other tools that do not know how to use SEEK_DATA/SEEK_HOLE?

Comment 183 Niels de Vos 2016-06-16 13:00:02 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.8.0, please open a new bug report.

glusterfs-3.8.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://blog.gluster.org/2016/06/glusterfs-3-8-released/
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user


Note You need to log in before you can comment on or make changes to this bug.