summaryrefslogtreecommitdiff
path: root/0520-performance-open-behind-seek-fop-should-open_and_res.patch
diff options
context:
space:
mode:
Diffstat (limited to '0520-performance-open-behind-seek-fop-should-open_and_res.patch')
-rw-r--r--0520-performance-open-behind-seek-fop-should-open_and_res.patch70
1 files changed, 70 insertions, 0 deletions
diff --git a/0520-performance-open-behind-seek-fop-should-open_and_res.patch b/0520-performance-open-behind-seek-fop-should-open_and_res.patch
new file mode 100644
index 0000000..c46a9ca
--- /dev/null
+++ b/0520-performance-open-behind-seek-fop-should-open_and_res.patch
@@ -0,0 +1,70 @@
+From a3fd2c9d85bbd23131c985599d9c9d74f66f32d2 Mon Sep 17 00:00:00 2001
+From: Pranith Kumar K <pkarampu@redhat.com>
+Date: Thu, 10 Oct 2019 10:50:59 +0530
+Subject: [PATCH 520/526] performance/open-behind: seek fop should
+ open_and_resume
+
+Upstream patch:
+> Upstream-patch-link: https://review.gluster.org/#/c/glusterfs/+/23530
+> fixes: bz#1760187
+> Change-Id: I4c6ad13194d4fc5c7705e35bf9a27fce504b51f9
+> Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
+
+BUG: 1830713
+Change-Id: I4c6ad13194d4fc5c7705e35bf9a27fce504b51f9
+Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
+Reviewed-on: https://code.engineering.redhat.com/gerrit/224484
+Tested-by: RHGS Build Bot <nigelb@redhat.com>
+Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
+---
+ xlators/performance/open-behind/src/open-behind.c | 27 +++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+diff --git a/xlators/performance/open-behind/src/open-behind.c b/xlators/performance/open-behind/src/open-behind.c
+index 268c717..3ee3c40 100644
+--- a/xlators/performance/open-behind/src/open-behind.c
++++ b/xlators/performance/open-behind/src/open-behind.c
+@@ -711,6 +711,32 @@ err:
+ }
+
+ int
++ob_seek(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset,
++ gf_seek_what_t what, dict_t *xdata)
++{
++ call_stub_t *stub = NULL;
++ fd_t *wind_fd = NULL;
++
++ wind_fd = ob_get_wind_fd(this, fd, NULL);
++
++ stub = fop_seek_stub(frame, default_seek_resume, wind_fd, offset, what,
++ xdata);
++
++ fd_unref(wind_fd);
++
++ if (!stub)
++ goto err;
++
++ open_and_resume(this, wind_fd, stub);
++
++ return 0;
++err:
++ STACK_UNWIND_STRICT(fstat, frame, -1, ENOMEM, 0, 0);
++
++ return 0;
++}
++
++int
+ ob_flush(call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata)
+ {
+ call_stub_t *stub = NULL;
+@@ -1276,6 +1302,7 @@ struct xlator_fops fops = {
+ .flush = ob_flush,
+ .fsync = ob_fsync,
+ .fstat = ob_fstat,
++ .seek = ob_seek,
+ .ftruncate = ob_ftruncate,
+ .fsetxattr = ob_fsetxattr,
+ .setxattr = ob_setxattr,
+--
+1.8.3.1
+