On Wed, Oct 31, 2012 at 09:23:32AM +1100, Dave Chinner wrote: > There's also another problem with this - endian swapping is missing. Endian swapping doesn't matter. include/linux/types.h defines __be16 as a __u16 and 0 is 0 is 0, no matter which order you put the bytes. Doesn't hurt to make it clear though. > xfs: add xfs_da_node verification > > From: Dave Chinner <dchinner@xxxxxxxxxx> > > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> > --- > fs/xfs/xfs_attr.c | 22 ++++------ > fs/xfs/xfs_attr_leaf.c | 12 +++--- > fs/xfs/xfs_attr_leaf.h | 8 ++-- > fs/xfs/xfs_da_btree.c | 109 ++++++++++++++++++++++++++++++++++++------------ > fs/xfs/xfs_da_btree.h | 3 ++ > fs/xfs/xfs_dir2_leaf.c | 2 +- > fs/xfs/xfs_dir2_priv.h | 1 + > 7 files changed, 107 insertions(+), 50 deletions(-) I'm a little surprised (and dismayed) that it passed xfstests with that. Presumably, it never ran into a case where level or count were > 0 on an invalid xfs_da_node. Anyway... Reviewed-by: Phil White <pwhite@xxxxxxx> _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs