diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2017-02-09 14:43:08 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2017-02-09 14:43:08 +0100 |
commit | b4f2d7c3424c00de162c042a5a3a5ed19974677c (patch) | |
tree | 2783d3212e82f01b53bfb0a408d901918870782e /fs/xfs/libxfs/xfs_inode_buf.c | |
parent | 788d23930a9724fc85cdf9999521a867d8748019 (diff) | |
parent | 34d677a90f0682a26327dbefc0db1cf81647e7bc (diff) | |
download | kernel_replicant_linux-b4f2d7c3424c00de162c042a5a3a5ed19974677c.tar.gz kernel_replicant_linux-b4f2d7c3424c00de162c042a5a3a5ed19974677c.tar.bz2 kernel_replicant_linux-b4f2d7c3424c00de162c042a5a3a5ed19974677c.zip |
Merge tag 'irqchip-for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core
Pull irqchip updates for 4.11 from Marc Zyngier
- A number of gic-v3-its cleanups and fixes
- A fix for the MIPS GIC
- One new interrupt controller for the Cortina Gemini platform
- Support for the Qualcomm interrupt combiner, together with
its ACPI goodness
Diffstat (limited to 'fs/xfs/libxfs/xfs_inode_buf.c')
-rw-r--r-- | fs/xfs/libxfs/xfs_inode_buf.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c index dd483e2767f7..d93f9d918cfc 100644 --- a/fs/xfs/libxfs/xfs_inode_buf.c +++ b/fs/xfs/libxfs/xfs_inode_buf.c @@ -29,6 +29,7 @@ #include "xfs_icache.h" #include "xfs_trans.h" #include "xfs_ialloc.h" +#include "xfs_dir2.h" /* * Check that none of the inode's in the buffer have a next @@ -386,6 +387,7 @@ xfs_dinode_verify( xfs_ino_t ino, struct xfs_dinode *dip) { + uint16_t mode; uint16_t flags; uint64_t flags2; @@ -396,8 +398,12 @@ xfs_dinode_verify( if (be64_to_cpu(dip->di_size) & (1ULL << 63)) return false; - /* No zero-length symlinks. */ - if (S_ISLNK(be16_to_cpu(dip->di_mode)) && dip->di_size == 0) + mode = be16_to_cpu(dip->di_mode); + if (mode && xfs_mode_to_ftype(mode) == XFS_DIR3_FT_UNKNOWN) + return false; + + /* No zero-length symlinks/dirs. */ + if ((S_ISLNK(mode) || S_ISDIR(mode)) && dip->di_size == 0) return false; /* only version 3 or greater inodes are extensively verified here */ |