Re: linux-next: manual merge of the vfs tree with the orangefs tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Stephen...

I noticed the conflict too when I added Al's patch series to the orangefs
tree we have on next. I understood Linus to say he'd fix the conflict the
way you did during the merge window. I guess that means you'll have to
keep fixing it on next until then... I hate causing trouble, let me know if
there's something different I should do to help...

-Mike

On Thu, May 2, 2019 at 9:15 PM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> Hi all,
>
> Today's linux-next merge of the vfs tree got a conflict in:
>
>   fs/orangefs/super.c
>
> between commit:
>
>   77becb76042a ("orangefs: implement xattr cache")
>
> from the orangefs tree and commit:
>
>   f276ae0dd6d0 ("orangefs: make use of ->free_inode()")
>
> from the vfs tree.
>
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging.  You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
>
> --
> Cheers,
> Stephen Rothwell
>
> diff --cc fs/orangefs/super.c
> index 8fa30c13b7ed,3784f7e8b603..000000000000
> --- a/fs/orangefs/super.c
> +++ b/fs/orangefs/super.c
> @@@ -125,20 -124,9 +125,19 @@@ static struct inode *orangefs_alloc_ino
>         return &orangefs_inode->vfs_inode;
>   }
>
> - static void orangefs_i_callback(struct rcu_head *head)
> + static void orangefs_free_inode(struct inode *inode)
>   {
> -       struct inode *inode = container_of(head, struct inode, i_rcu);
>  -      kmem_cache_free(orangefs_inode_cache, ORANGEFS_I(inode));
>  +      struct orangefs_inode_s *orangefs_inode = ORANGEFS_I(inode);
>  +      struct orangefs_cached_xattr *cx;
>  +      struct hlist_node *tmp;
>  +      int i;
>  +
>  +      hash_for_each_safe(orangefs_inode->xattr_cache, i, tmp, cx, node) {
>  +              hlist_del(&cx->node);
>  +              kfree(cx);
>  +      }
>  +
>  +      kmem_cache_free(orangefs_inode_cache, orangefs_inode);
>   }
>
>   static void orangefs_destroy_inode(struct inode *inode)
> @@@ -148,17 -136,8 +147,15 @@@
>         gossip_debug(GOSSIP_SUPER_DEBUG,
>                         "%s: deallocated %p destroying inode %pU\n",
>                         __func__, orangefs_inode, get_khandle_from_ino(inode));
> -
> -       call_rcu(&inode->i_rcu, orangefs_i_callback);
>   }
>
>  +static int orangefs_write_inode(struct inode *inode,
>  +                              struct writeback_control *wbc)
>  +{
>  +      gossip_debug(GOSSIP_SUPER_DEBUG, "orangefs_write_inode\n");
>  +      return orangefs_inode_setattr(inode);
>  +}
>  +
>   /*
>    * NOTE: information filled in here is typically reflected in the
>    * output of the system command 'df'
> @@@ -316,8 -295,8 +313,9 @@@ void fsid_key_table_finalize(void
>
>   static const struct super_operations orangefs_s_ops = {
>         .alloc_inode = orangefs_alloc_inode,
> +       .free_inode = orangefs_free_inode,
>         .destroy_inode = orangefs_destroy_inode,
>  +      .write_inode = orangefs_write_inode,
>         .drop_inode = generic_delete_inode,
>         .statfs = orangefs_statfs,
>         .remount_fs = orangefs_remount_fs,



[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux