xfs
[Top] [All Lists]

xfs buffers

To: xfs@xxxxxxxxxxx
Subject: xfs buffers
From: kanishk rastogi <kanishk.85@xxxxxxxxx>
Date: Thu, 13 Aug 2009 23:47:03 +0530
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=l9YGtKDfJEXsPgmZZDGHbnvfOxaP4ra1t4LWmIkXB3E=; b=vIn/jzLWQCTY2ZWw4SlycwOSmyaFQL5QTzUoGj0sL24BrtBNHYQnHotSASLm8FdYKn kEC0tv6WBaOIOULYHjju0alkjuFYVwJdA7Zc4mbSTB4SvZCrTf98M7xVKpY2iWLoMiIz y7ZhYzcHd+iaP/CitVyWfuyS9sD9T8Oi+69vA=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=pWU7NIYK9p4uMqpSHJHxki6+3VTJKO0wxEipmn/mggsjqIY7x4z0KtImyrPSweBcaP vtg5IDmY/ChiXxasAT0F0SymQLM6X5zzKoLR9Vs5g5oFML/D4GeHdVFnBOi8pKjcSVb9 MX/DnnP3IwWHAPIoIqvEIj4g1Bhj+TZ132go0=
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
<Prev in Thread] Current Thread [Next in Thread>