]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_io: fix inode command with "-n" for bogus inode
authorEric Sandeen <sandeen@sandeen.net>
Sun, 2 Oct 2016 23:56:00 +0000 (10:56 +1100)
committerDave Chinner <david@fromorbit.com>
Sun, 2 Oct 2016 23:56:00 +0000 (10:56 +1100)
If we ask for the next allocated inode after a number for which
no other inode exists, the bulkstat returns success, but with
count == 0.  If we ignore this fact, we print a garbage result
from bstat.bs_ino in this case, so fix it.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
io/open.c

index 7d952a08df098a8ca96456b7441a7e43850dab0d..8f934eedcd2f165d4b112e6c9383f40716d53765 100644 (file)
--- a/io/open.c
+++ b/io/open.c
@@ -882,10 +882,16 @@ inode_f(
                                exitcode = 1;
                                return 0;
                        }
-               } else if (ret_next)    /* The next inode in use */
-                       result_ino = bstat.bs_ino;
-               else                    /* The inode we asked about */
+               } else if (ret_next) {
+                       /* The next inode in use, or 0 if none */
+                       if (*bulkreq.ocount)
+                               result_ino = bstat.bs_ino;
+                       else
+                               result_ino = 0;
+               } else {
+                       /* The inode we asked about */
                        result_ino = userino;
+               }
        }
 
        if (verbose && result_ino) {