mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 12:54:27 +00:00
Must set ip->i_effnlink = ip->i_nlink to avoid a soft updates
"panic: softdep_update_inodeblock: bad link count" when releasing a partially initialized vnode after an inode check-hash failure. Reported by: Gary Jennejohn <gljennjohn@gmail.com> Reported by: Peter Holm (pho) Sponsored by: Netflix
This commit is contained in:
parent
e155208020
commit
6fa9bc995a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=342129
|
@ -127,6 +127,7 @@ ffs_load_inode(struct buf *bp, struct inode *ip, struct fs *fs, ino_t ino)
|
|||
*((struct ufs1_dinode *)bp->b_data + ino_to_fsbo(fs, ino));
|
||||
ip->i_mode = dip1->di_mode;
|
||||
ip->i_nlink = dip1->di_nlink;
|
||||
ip->i_effnlink = dip1->di_nlink;
|
||||
ip->i_size = dip1->di_size;
|
||||
ip->i_flags = dip1->di_flags;
|
||||
ip->i_gen = dip1->di_gen;
|
||||
|
@ -138,6 +139,7 @@ ffs_load_inode(struct buf *bp, struct inode *ip, struct fs *fs, ino_t ino)
|
|||
*dip2 = *((struct ufs2_dinode *)bp->b_data + ino_to_fsbo(fs, ino));
|
||||
ip->i_mode = dip2->di_mode;
|
||||
ip->i_nlink = dip2->di_nlink;
|
||||
ip->i_effnlink = dip2->di_nlink;
|
||||
ip->i_size = dip2->di_size;
|
||||
ip->i_flags = dip2->di_flags;
|
||||
ip->i_gen = dip2->di_gen;
|
||||
|
|
Loading…
Reference in a new issue