diff options
author | Jan Harkes <jaharkes@cs.cmu.edu> | 2021-11-08 18:34:39 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2021-11-09 10:02:51 -0800 |
commit | 76097eb7a48a2ddcf4755773bd501c7aa14cbb7d (patch) | |
tree | b1b5bb4a103e03217fbddef0391e1fd39042ecf7 /fs/coda | |
parent | b1deb685b07945bb374fa75857033bb658a1253b (diff) | |
download | linux-76097eb7a48a2ddcf4755773bd501c7aa14cbb7d.tar.gz linux-76097eb7a48a2ddcf4755773bd501c7aa14cbb7d.tar.bz2 linux-76097eb7a48a2ddcf4755773bd501c7aa14cbb7d.zip |
coda: avoid flagging NULL inodes
Somehow we hit a negative dentry in coda_rename even after checking with
d_really_is_positive. Maybe something raced and turned the new_dentry
negative while we were fixing up directory link counts.
Link: https://lkml.kernel.org/r/20210908140308.18491-5-jaharkes@cs.cmu.edu
Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
Cc: Alex Shi <alex.shi@linux.alibaba.com>
Cc: Jing Yangyang <jing.yangyang@zte.com.cn>
Cc: Xin Tan <tanxin.ctf@gmail.com>
Cc: Xiyu Yang <xiyuyang19@fudan.edu.cn>
Cc: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/coda')
-rw-r--r-- | fs/coda/coda_linux.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/coda/coda_linux.h b/fs/coda/coda_linux.h index e7b27754ce78..3c2947bba5e5 100644 --- a/fs/coda/coda_linux.h +++ b/fs/coda/coda_linux.h @@ -83,6 +83,9 @@ static __inline__ void coda_flag_inode(struct inode *inode, int flag) { struct coda_inode_info *cii = ITOC(inode); + if (!inode) + return; + spin_lock(&cii->c_lock); cii->c_flags |= flag; spin_unlock(&cii->c_lock); |