On Mon, May 21, 2012 at 11:59:54AM +0800, Miao Xie wrote:
> Hi Josef,
>
> On fri, 18 May 2012 15:01:05 -0400, Josef Bacik wrote:
> > diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h
> > index 9b9b15f..492c74f 100644
> > --- a/fs/btrfs/btrfs_inode.h
> > +++ b/fs/btrfs/btrfs_inode.h
> > @@ -57,9 +57,6 @@ struct btrfs_inode {
> > /* used to order data wrt metadata */
> > struct btrfs_ordered_inode_tree ordered_tree;
> >
> > - /* for keeping track of orphaned inodes */
> > - struct list_head i_orphan;
> > -
> > /* list of all the delalloc inodes in the FS. There are times we need
> > * to write all the delalloc pages to disk, and this list is used
> > * to walk them all.
> > @@ -156,6 +153,8 @@ struct btrfs_inode {
> > unsigned dummy_inode:1;
> > unsigned in_defrag:1;
> > unsigned delalloc_meta_reserved:1;
> > + unsigned has_orphan_item:1;
> > + unsigned doing_truncate:1;
>
> I think the problem is we should not use the different lock to protect the
> bit fields which
> are stored in the same machine word. Or some bit fields may be covered by the
> others when
> someone change those fields. Could you try to declare
> ->delalloc_meta_reserved and ->has_orphan_item
> as a integer?
>
Oh freaking duh, thank you Miao, I'm an idiot.
Josef
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html