]> git.baikalelectronics.ru Git - kernel.git/commit
xfs: inode unlinked list needs to recalculate the inode CRC
authorDave Chinner <dchinner@redhat.com>
Wed, 5 Jun 2013 02:09:08 +0000 (12:09 +1000)
committerBen Myers <bpm@sgi.com>
Thu, 6 Jun 2013 15:51:19 +0000 (10:51 -0500)
commitc237fd528908274d7df031eb212414cdbf58cee4
tree8a8f9f5407f395c8b5619ab6c72116e65cbbf36f
parentb834b8a159c43d0bd6a61150c5e0b063e8578bfd
xfs: inode unlinked list needs to recalculate the inode CRC

The inode unlinked list manipulations operate directly on the inode
buffer, and so bypass the inode CRC calculation mechanisms. Hence an
inode on the unlinked list has an invalid CRC. Fix this by
recalculating the CRC whenever we modify an unlinked list pointer in
an inode, ncluding during log recovery. This is trivial to do and
results in  unlinked list operations always leaving a consistent
inode in the buffer.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
(cherry picked from commit 0a32c26e720a8b38971d0685976f4a7d63f9e2ef)
fs/xfs/xfs_inode.c
fs/xfs/xfs_log_recover.c