[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ocfs2-devel
Subject:    Re: [Ocfs2-devel] [PATCH] ocfs2: Don't retry xattr set in case
From:       Joel Becker <Joel.Becker () oracle ! com>
Date:       2010-05-18 19:15:21
Message-ID: 20100518191521.GB3239 () mail ! oracle ! com
[Download RAW message or body]

On Thu, May 13, 2010 at 10:49:05PM +0800, Tao Ma wrote:
> In normal xattr set, the set sequence is inode, xattr block
> and finally xattr bucket if we meet with a ENOSPC. But there
> is a corner case.
> So consider we will set a xattr whose value will be stored in
> a cluster, and there is no xattr block by now. So we will
> reserve 1 xattr block and 1 cluster for setting it. Now if we
> fail in value extension(in case the volume is almost full and
> we can't allocate the cluster because the check in
> ocfs2_test_bg_bit_allocatable), ENOSPC will be returned. So
> we will try to create a bucket(this time there is a chance that
> the reserved cluster will be used), and when we try value extension
> again, kernel bug happens. We did meet with it. Check the bug below.
> http://oss.oracle.com/bugzilla/show_bug.cgi?id=1251
> 
> This patch just try to avoid this by adding a set_abort in
> ocfs2_xattr_set_ctxt, so in case ENOSPC happens in value extension,
> we will check whether it is caused by the real ENOSPC or just the
> full of inode or xattr block. If it is the first case, we set set_abort
> so that we don't try any further. we are safe to exit directly here
> ince it is really ENOSPC.
> 
> Signed-off-by: Tao Ma <tao.ma@oracle.com>

This patch is now in the 'fixes' branch of ocfs2.git.

Joel

-- 

Life's Little Instruction Book #314

	"Never underestimate the power of forgiveness."

Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker@oracle.com
Phone: (650) 506-8127

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
http://oss.oracle.com/mailman/listinfo/ocfs2-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic