Discussion:
Another question.
Robert Rappaport
2009-01-30 23:08:45 UTC
Permalink
In routine, ext3cow_rmdir(), in the following code sequence:

inode->i_version++;

/* We only delete things that were created in the same epoch -znjp */
if(de->birth_epoch == de->death_epoch){

it seems to me that the modification of inode->i_version should only
occur within the scope of the "if" statement, in that we should not
modify the version of the inode if we do not delete it. If I am
mistaken could you please tel me why.

Thanks.

- Robert

P.S. In a previous message I indicated that I believed that
manipulations of bitmaps in indirect blocks were incorrect because
they lacked invocations of cpu_to_le32(). These problems occur in
routines ext3cow_get_branch() and ext3_alloc_branch().
Zachary N. J. Peterson
2009-02-15 14:28:14 UTC
Permalink
You probably already know this, but i_version isn't an ext3cow
versioning structure. My understanding of i_version is that it's used
by NFS to keep inodes current when their metadata is updated. In
particular, it looks to be updated on every modification to the time
fields in an inode. Since we do update the time fields in
ext3cow_rmdir() irrespective of wether we actually deallocate the
directory inode or not, I think it's current location is OK.

Agree or disagree?

-Zachary

---
Zachary N. J. Peterson
Assistant Research Scientist
The Johns Hopkins University

zachary-***@public.gmane.org
http://znjp.com
Post by Robert Rappaport
inode->i_version++;
/* We only delete things that were created in the same epoch -znjp */
if(de->birth_epoch == de->death_epoch){
it seems to me that the modification of inode->i_version should only
occur within the scope of the "if" statement, in that we should not
modify the version of the inode if we do not delete it. If I am
mistaken could you please tel me why.
Thanks.
- Robert
P.S. In a previous message I indicated that I believed that
manipulations of bitmaps in indirect blocks were incorrect because
they lacked invocations of cpu_to_le32(). These problems occur in
routines ext3cow_get_branch() and ext3_alloc_branch().
_______________________________________________
ext3cow-devel mailing list
http://hssl.cs.jhu.edu/cgi-bin/mailman/listinfo/ext3cow-devel
Loading...