xfs: add CRC checks to remote symlinks
[firefly-linux-kernel-4.4.55.git] / fs / xfs / xfs_log_recover.c
index 287878219af7e82dbd47fc7bf5440f05e181670c..d1292fd1112a6d103fcd74e1b659c07f933dcd27 100644 (file)
@@ -45,6 +45,7 @@
 #include "xfs_cksum.h"
 #include "xfs_trace.h"
 #include "xfs_icache.h"
+#include "xfs_symlink.h"
 
 STATIC int
 xlog_find_zeroed(
@@ -2002,6 +2003,14 @@ xlog_recover_do_reg_buffer(
                }
                bp->b_ops = &xfs_inode_buf_ops;
                break;
+       case XFS_BLF_SYMLINK_BUF:
+               if (*(__be32 *)bp->b_addr != cpu_to_be32(XFS_SYMLINK_MAGIC)) {
+                       xfs_warn(mp, "Bad symlink block magic!");
+                       ASSERT(0);
+                       break;
+               }
+               bp->b_ops = &xfs_symlink_buf_ops;
+               break;
        default:
                break;
        }