Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 189230
b: refs/heads/master
c: b54c2ca
h: refs/heads/master
v: v3
  • Loading branch information
Tristan Ye authored and Joel Becker committed Mar 24, 2010
1 parent 32afb46 commit 0b3e608
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3939fda4b389993caf8741df5739b3e49f33a263
refs/heads/master: b54c2ca475fa7d7450a45b6d778dae9dbe0bcbfe
15 changes: 15 additions & 0 deletions trunk/fs/ocfs2/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -891,6 +891,21 @@ static int ocfs2_query_inode_wipe(struct inode *inode,
/* Do some basic inode verification... */
di = (struct ocfs2_dinode *) di_bh->b_data;
if (!(di->i_flags & cpu_to_le32(OCFS2_ORPHANED_FL))) {
/*
* Inodes in the orphan dir must have ORPHANED_FL. The only
* inodes that come back out of the orphan dir are reflink
* targets. A reflink target may be moved out of the orphan
* dir between the time we scan the directory and the time we
* process it. This would lead to HAS_REFCOUNT_FL being set but
* ORPHANED_FL not.
*/
if (di->i_dyn_features & cpu_to_le16(OCFS2_HAS_REFCOUNT_FL)) {
mlog(0, "Reflinked inode %llu is no longer orphaned. "
"it shouldn't be deleted\n",
(unsigned long long)oi->ip_blkno);
goto bail;
}

/* for lack of a better error? */
status = -EEXIST;
mlog(ML_ERROR,
Expand Down

0 comments on commit 0b3e608

Please sign in to comment.