Hi all, On Fri, 14 Jan 2022 14:55:02 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > Today's linux-next merge of the akpm-current tree got conflicts in: > > include/linux/ceph/libceph.h > net/ceph/ceph_common.c > > between commit: > > 4153c7fc937a ("libceph: rename parse_fsid() to ceph_parse_fsid() and export") > > from the ceph tree and commit: > > f9126de5849a ("mm: allow !GFP_KERNEL allocations for kvmalloc") > > from the akpm-current 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. > > > diff --cc include/linux/ceph/libceph.h > index 644f224eccf7,309acbcb5a8a..000000000000 > --- a/include/linux/ceph/libceph.h > +++ b/include/linux/ceph/libceph.h > @@@ -295,8 -295,6 +295,7 @@@ extern bool libceph_compatible(void *da > > extern const char *ceph_msg_type_name(int type); > extern int ceph_check_fsid(struct ceph_client *client, struct ceph_fsid *fsid); > - extern void *ceph_kvmalloc(size_t size, gfp_t flags); > +extern int ceph_parse_fsid(const char *str, struct ceph_fsid *fsid); > > struct fs_parameter; > struct fc_log; > diff --cc net/ceph/ceph_common.c > index decae43b4262,9441b4a4912b..000000000000 > --- a/net/ceph/ceph_common.c > +++ b/net/ceph/ceph_common.c > @@@ -190,34 -190,7 +190,7 @@@ int ceph_compare_options(struct ceph_op > } > EXPORT_SYMBOL(ceph_compare_options); > > - /* > - * kvmalloc() doesn't fall back to the vmalloc allocator unless flags are > - * compatible with (a superset of) GFP_KERNEL. This is because while the > - * actual pages are allocated with the specified flags, the page table pages > - * are always allocated with GFP_KERNEL. > - * > - * ceph_kvmalloc() may be called with GFP_KERNEL, GFP_NOFS or GFP_NOIO. > - */ > - void *ceph_kvmalloc(size_t size, gfp_t flags) > - { > - void *p; > - > - if ((flags & (__GFP_IO | __GFP_FS)) == (__GFP_IO | __GFP_FS)) { > - p = kvmalloc(size, flags); > - } else if ((flags & (__GFP_IO | __GFP_FS)) == __GFP_IO) { > - unsigned int nofs_flag = memalloc_nofs_save(); > - p = kvmalloc(size, GFP_KERNEL); > - memalloc_nofs_restore(nofs_flag); > - } else { > - unsigned int noio_flag = memalloc_noio_save(); > - p = kvmalloc(size, GFP_KERNEL); > - memalloc_noio_restore(noio_flag); > - } > - > - return p; > - } > - > -static int parse_fsid(const char *str, struct ceph_fsid *fsid) > +int ceph_parse_fsid(const char *str, struct ceph_fsid *fsid) > { > int i = 0; > char tmp[3]; This is now a conflict between the ceph tree and Linus' tree. -- Cheers, Stephen Rothwell
Attachment:
pgpbqAZw0PK7G.pgp
Description: OpenPGP digital signature