Joel Becker
2009-Aug-11 22:09 UTC
[Ocfs2-devel] Why do we read the blocks in __ocfs2_xxattr_set_value_outside()?
In __ocfs2_xattr_set_value_outside(), we walk each block of the xattr value and read it before we copy the new data on top and dirty it. Why are we reading the block from disk if we're just overwriting it? Would't "sb_getblk(); ocfs2_set_buffer_uptodate()" work better? Joel -- "This is the end, beautiful friend. This is the end, my only friend the end Of our elaborate plans, the end Of everything that stands, the end No safety or surprise, the end I'll never look into your eyes again." Joel Becker Principal Software Developer Oracle E-mail: joel.becker at oracle.com Phone: (650) 506-8127
Tao Ma
2009-Aug-12 01:40 UTC
[Ocfs2-devel] Why do we read the blocks in __ocfs2_xxattr_set_value_outside()?
Joel Becker wrote:> In __ocfs2_xattr_set_value_outside(), we walk each block of the > xattr value and read it before we copy the new data on top and dirty it. > Why are we reading the block from disk if we're just overwriting it? > Would't "sb_getblk(); ocfs2_set_buffer_uptodate()" work better?You made it. yeah, we can do like it. I remembered that when I first try sb_getblk, I used ocfs2_set_new_buffer_uptodate and get a BUG_ON(sorry for it, at the time I wrote this piece of code, I don't know much about ocfs2 buffer cache :( ). Regards, Tao