Details
-
Bug
-
Resolution: Fixed
-
Minor
-
Upstream
-
None
-
3
-
9223372036854775807
Description
osd_obj_map_recover() may stop current transaction to call vfs_unlink(), then continue to modify filesystem with no transaction:
ldiskfs_journal_stop(jh);
rc = -EEXIST;
/* If the src object has never been modified, then remove it. */
if (inode->i_size == 0 && inode->i_mode & S_ISUID &&
inode->i_mode & S_ISGID) {
rc = ll_vfs_unlink(src_parent, src_child);
if (unlikely(rc == -ENOENT))
rc = 0;
}
if (rc)
RETURN(rc);
}
bh = osd_ldiskfs_find_entry(src_parent, &src_child->d_name, &de,
NULL, NULL);
if (unlikely(IS_ERR(bh)))
GOTO(unlock, rc = PTR_ERR(bh));
rc = ldiskfs_delete_entry(jh, src_parent, de, bh);
Attachments
Issue Links
- is related to
-
LU-15162 improve OI lookup concurrency
-
- Resolved
-