On Tue, 2010-09-07 at 19:34 -0400, Christoph Hellwig wrote: > The implementation os ->kill_root only differ by either simply zeroing > out the now unused buffer in the btree cursor in the inode allocation > btree or using xfs_btree_setbuf in the allocation btree. > > Initially both of them used xfs_btree_setbuf, but the use in the ialloc > btree was removed early on because it interacted badly with xfs_trans_binval. > > In addition to zeroing out the buffer in the cursor xfs_btree_setbuf updates > the bc_ra array in the btree cursor, and calls xfs_trans_brelse on the > buffer previous occupying the slot. > > The bc_ra update should be done for the alloc btree updated too, although > the lack of it does not cause serious problems. The xfs_trans_brelse > call on the other hand is effectively a no-op in the end - it keeps > decrementing the bli_recur refcount until it hits zero, and then just > skips out because the buffer will always be dirty at this point. So > removing it for the allocation btree is just fine. > > So unify the code and move it to xfs_btree.c. While we're at it also > replace the call to xfs_btree_setbuf with a NULL bp argument in > xfs_btree_del_cursor with a direct call to xfs_trans_brelse given > that the cursor is beeing freed just after this and the state updates > are superflous. After this xfs_btree_setbuf is only used with a non-NULL > bp argument and can thus be simplified. Looks good. Reviewed-by: Alex Elder <aelder@xxxxxxx> > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > . . . _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs