diff options
Diffstat (limited to 'fs/xfs/xfs_dir2_block.c')
-rw-r--r-- | fs/xfs/xfs_dir2_block.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/xfs/xfs_dir2_block.c b/fs/xfs/xfs_dir2_block.c index e2fa0a1d8e96..e1f0a06aaf04 100644 --- a/fs/xfs/xfs_dir2_block.c +++ b/fs/xfs/xfs_dir2_block.c | |||
@@ -517,9 +517,9 @@ xfs_dir2_block_getdents( | |||
517 | /* | 517 | /* |
518 | * If it didn't fit, set the final offset to here & return. | 518 | * If it didn't fit, set the final offset to here & return. |
519 | */ | 519 | */ |
520 | if (filldir(dirent, dep->name, dep->namelen, cook, | 520 | if (filldir(dirent, dep->name, dep->namelen, cook & 0x7fffffff, |
521 | ino, DT_UNKNOWN)) { | 521 | ino, DT_UNKNOWN)) { |
522 | *offset = cook; | 522 | *offset = cook & 0x7fffffff; |
523 | xfs_da_brelse(NULL, bp); | 523 | xfs_da_brelse(NULL, bp); |
524 | return 0; | 524 | return 0; |
525 | } | 525 | } |
@@ -529,7 +529,8 @@ xfs_dir2_block_getdents( | |||
529 | * Reached the end of the block. | 529 | * Reached the end of the block. |
530 | * Set the offset to a non-existent block 1 and return. | 530 | * Set the offset to a non-existent block 1 and return. |
531 | */ | 531 | */ |
532 | *offset = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk + 1, 0); | 532 | *offset = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk + 1, 0) & |
533 | 0x7fffffff; | ||
533 | xfs_da_brelse(NULL, bp); | 534 | xfs_da_brelse(NULL, bp); |
534 | return 0; | 535 | return 0; |
535 | } | 536 | } |