]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw_file: rgw_readdir: return dot-dirs only when *offset is 0
authorMatt Benjamin <mbenjamin@redhat.com>
Wed, 15 Mar 2017 20:40:35 +0000 (16:40 -0400)
committerNathan Cutler <ncutler@suse.com>
Thu, 20 Apr 2017 09:29:48 +0000 (11:29 +0200)
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
(cherry picked from commit 61482c2b85a07519f2256b1a3f2b6d8aa99d5f06)

src/rgw/rgw_file.cc

index 4dd017db3a6a80e1d319e6fedb03ffd4e7ad8de6..e9b5416a566f627fa29a927100d7b7230048bfae 100644 (file)
@@ -872,7 +872,8 @@ namespace rgw {
 
     (void) clock_gettime(CLOCK_MONOTONIC_COARSE, &now); /* !LOCKED */
 
-    if (flags & RGW_READDIR_FLAG_DOTDOT) {
+    if ((*offset == 0) &&
+       (flags & RGW_READDIR_FLAG_DOTDOT)) {
       /* send '.' and '..' with their NFS-defined offsets */
       rcb(".", cb_arg, 1, RGW_LOOKUP_FLAG_DIR);
       rcb("..", cb_arg, 2, RGW_LOOKUP_FLAG_DIR);