OSDN Git Service

xfs: return a distinct error code value for IGET_INCORE cache misses
authorDarrick J. Wong <darrick.wong@oracle.com>
Wed, 18 Oct 2017 04:37:32 +0000 (21:37 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 26 Oct 2017 22:38:23 +0000 (15:38 -0700)
For an XFS_IGET_INCORE iget operation, if the inode isn't in the cache,
return ENODATA so that we don't confuse it with the pre-existing ENOENT
cases (inode is in cache, but freed).

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
fs/xfs/xfs_icache.c

index 3422711..43005fb 100644 (file)
@@ -610,7 +610,7 @@ again:
        } else {
                rcu_read_unlock();
                if (flags & XFS_IGET_INCORE) {
-                       error = -ENOENT;
+                       error = -ENODATA;
                        goto out_error_or_again;
                }
                XFS_STATS_INC(mp, xs_ig_missed);