xfs buffers

kanishk rastogi kanishk.85 at gmail.com
Thu Aug 13 13:17:03 CDT 2009


hi all,
I was trying to understand the xfs_buf_t management in XFS.
I was looking at the xfs_bufhash_t which is used to keep the info of buffers
which have ongoing transactions.
I wanted to know if it uses it for caching these pages.

As far as i can see in xfs_buf_relse  calls ::

list_del_init(&bp->b_hash_list);

if the count drops down to 0 for the buffer...

if (atomic_dec_and_lock(&bp->b_hold, &hash->bh_lock)) {
                if (bp->b_relse) { ----->set only in case of error??
                        atomic_inc(&bp->b_hold);
                        spin_unlock(&hash->bh_lock);
                        (*(bp->b_relse)) (bp);
                } else if (bp->b_flags & XBF_FS_MANAGED) { ----> mostly
unset......
                        spin_unlock(&hash->bh_lock);
                } else {
                        ASSERT(!(bp->b_flags & (XBF_DELWRI|_XBF_DELWRI_Q)));
                        *list_del_init(&bp->b_hash_list);*
                        spin_unlock(&hash->bh_lock);
                        xfs_buf_free(bp);
                }
        }

---------------

CMIIW:
So it doesnt keeps buffers if they are not in use....  ??

I dont think that should be the case...

-- 
regards
kanishk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://oss.sgi.com/pipermail/xfs/attachments/20090813/dc3d2a95/attachment.htm>


More information about the xfs mailing list