- ldiskfs_inc_count(oh->ot_handle, inode);
- if (!S_ISDIR(inode->i_mode))
- LASSERT(inode->i_nlink <= LDISKFS_LINK_MAX);
+ if (unlikely(inode->i_nlink == 0))
+ /* inc_nlink from 0 may cause WARN_ON */
+ set_nlink(inode, 1);
+ else {
+ ldiskfs_inc_count(oh->ot_handle, inode);
+ if (!S_ISDIR(inode->i_mode))
+ LASSERT(inode->i_nlink <= LDISKFS_LINK_MAX);
+ }