From: David Howells Date: Tue, 17 Mar 2015 22:16:40 +0000 (+0000) Subject: VFS: Make pathwalk use d_is_reg() rather than S_ISREG() X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=4bbcbd3b11dbc676a272be508e47d1c4a5056349;p=openwrt%2Fstaging%2Fblogic.git VFS: Make pathwalk use d_is_reg() rather than S_ISREG() Make pathwalk use d_is_reg() rather than S_ISREG() to determine whether to honour O_TRUNC. Since this occurs after complete_walk(), the dentry type field cannot change and the inode pointer cannot change as we hold a ref on the dentry, so this should be safe. Signed-off-by: David Howells Signed-off-by: Al Viro --- diff --git a/fs/namei.c b/fs/namei.c index 5a9291c31881..ffab2e06e147 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -3077,7 +3077,7 @@ finish_open: error = -ENOTDIR; if ((nd->flags & LOOKUP_DIRECTORY) && !d_can_lookup(nd->path.dentry)) goto out; - if (!S_ISREG(nd->inode->i_mode)) + if (!d_is_reg(nd->path.dentry)) will_truncate = false; if (will_truncate) {