diff options
| -rw-r--r-- | fs/xfs/xfs_dir2_format.h | 1 | ||||
| -rw-r--r-- | fs/xfs/xfs_dir2_node.c | 13 |
2 files changed, 7 insertions, 7 deletions
diff --git a/fs/xfs/xfs_dir2_format.h b/fs/xfs/xfs_dir2_format.h index a3b1bd841a80..995f1f505a52 100644 --- a/fs/xfs/xfs_dir2_format.h +++ b/fs/xfs/xfs_dir2_format.h | |||
| @@ -715,6 +715,7 @@ struct xfs_dir3_free_hdr { | |||
| 715 | __be32 firstdb; /* db of first entry */ | 715 | __be32 firstdb; /* db of first entry */ |
| 716 | __be32 nvalid; /* count of valid entries */ | 716 | __be32 nvalid; /* count of valid entries */ |
| 717 | __be32 nused; /* count of used entries */ | 717 | __be32 nused; /* count of used entries */ |
| 718 | __be32 pad; /* 64 bit alignment. */ | ||
| 718 | }; | 719 | }; |
| 719 | 720 | ||
| 720 | struct xfs_dir3_free { | 721 | struct xfs_dir3_free { |
diff --git a/fs/xfs/xfs_dir2_node.c b/fs/xfs/xfs_dir2_node.c index 5246de4912d4..2226a00acd15 100644 --- a/fs/xfs/xfs_dir2_node.c +++ b/fs/xfs/xfs_dir2_node.c | |||
| @@ -263,18 +263,19 @@ xfs_dir3_free_get_buf( | |||
| 263 | * Initialize the new block to be empty, and remember | 263 | * Initialize the new block to be empty, and remember |
| 264 | * its first slot as our empty slot. | 264 | * its first slot as our empty slot. |
| 265 | */ | 265 | */ |
| 266 | hdr.magic = XFS_DIR2_FREE_MAGIC; | 266 | memset(bp->b_addr, 0, sizeof(struct xfs_dir3_free_hdr)); |
| 267 | hdr.firstdb = 0; | 267 | memset(&hdr, 0, sizeof(hdr)); |
| 268 | hdr.nused = 0; | 268 | |
| 269 | hdr.nvalid = 0; | ||
| 270 | if (xfs_sb_version_hascrc(&mp->m_sb)) { | 269 | if (xfs_sb_version_hascrc(&mp->m_sb)) { |
| 271 | struct xfs_dir3_free_hdr *hdr3 = bp->b_addr; | 270 | struct xfs_dir3_free_hdr *hdr3 = bp->b_addr; |
| 272 | 271 | ||
| 273 | hdr.magic = XFS_DIR3_FREE_MAGIC; | 272 | hdr.magic = XFS_DIR3_FREE_MAGIC; |
| 273 | |||
| 274 | hdr3->hdr.blkno = cpu_to_be64(bp->b_bn); | 274 | hdr3->hdr.blkno = cpu_to_be64(bp->b_bn); |
| 275 | hdr3->hdr.owner = cpu_to_be64(dp->i_ino); | 275 | hdr3->hdr.owner = cpu_to_be64(dp->i_ino); |
| 276 | uuid_copy(&hdr3->hdr.uuid, &mp->m_sb.sb_uuid); | 276 | uuid_copy(&hdr3->hdr.uuid, &mp->m_sb.sb_uuid); |
| 277 | } | 277 | } else |
| 278 | hdr.magic = XFS_DIR2_FREE_MAGIC; | ||
| 278 | xfs_dir3_free_hdr_to_disk(bp->b_addr, &hdr); | 279 | xfs_dir3_free_hdr_to_disk(bp->b_addr, &hdr); |
| 279 | *bpp = bp; | 280 | *bpp = bp; |
| 280 | return 0; | 281 | return 0; |
| @@ -1921,8 +1922,6 @@ xfs_dir2_node_addname_int( | |||
| 1921 | */ | 1922 | */ |
| 1922 | freehdr.firstdb = (fbno - XFS_DIR2_FREE_FIRSTDB(mp)) * | 1923 | freehdr.firstdb = (fbno - XFS_DIR2_FREE_FIRSTDB(mp)) * |
| 1923 | xfs_dir3_free_max_bests(mp); | 1924 | xfs_dir3_free_max_bests(mp); |
| 1924 | free->hdr.nvalid = 0; | ||
| 1925 | free->hdr.nused = 0; | ||
| 1926 | } else { | 1925 | } else { |
| 1927 | free = fbp->b_addr; | 1926 | free = fbp->b_addr; |
| 1928 | bests = xfs_dir3_free_bests_p(mp, free); | 1927 | bests = xfs_dir3_free_bests_p(mp, free); |
