Merge tag 'ceph-for-5.17-rc1' of git://github.com/ceph/ceph-client
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 20 Jan 2022 11:46:20 +0000 (13:46 +0200)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 20 Jan 2022 11:46:20 +0000 (13:46 +0200)
Pull ceph updates from Ilya Dryomov:
 "The highlight is the new mount "device" string syntax implemented by
  Venky Shankar. It solves some long-standing issues with using
  different auth entities and/or mounting different CephFS filesystems
  from the same cluster, remounting and also misleading /proc/mounts
  contents. The existing syntax of course remains to be maintained.

  On top of that, there is a couple of fixes for edge cases in quota and
  a new mount option for turning on unbuffered I/O mode globally instead
  of on a per-file basis with ioctl(CEPH_IOC_SYNCIO)"

* tag 'ceph-for-5.17-rc1' of git://github.com/ceph/ceph-client:
  ceph: move CEPH_SUPER_MAGIC definition to magic.h
  ceph: remove redundant Lsx caps check
  ceph: add new "nopagecache" option
  ceph: don't check for quotas on MDS stray dirs
  ceph: drop send metrics debug message
  rbd: make const pointer spaces a static const array
  ceph: Fix incorrect statfs report for small quota
  ceph: mount syntax module parameter
  doc: document new CephFS mount device syntax
  ceph: record updated mon_addr on remount
  ceph: new device mount syntax
  libceph: rename parse_fsid() to ceph_parse_fsid() and export
  libceph: generalize addr/ip parsing based on delimiter

1  2 
drivers/block/rbd.c
fs/ceph/caps.c
fs/ceph/file.c
fs/ceph/super.c
fs/ceph/super.h
include/linux/ceph/libceph.h
include/uapi/linux/magic.h
net/ceph/ceph_common.c
net/ceph/messenger.c

Simple merge
diff --cc fs/ceph/caps.c
Simple merge
diff --cc fs/ceph/file.c
Simple merge
diff --cc fs/ceph/super.c
Simple merge
diff --cc fs/ceph/super.h
Simple merge
@@@ -295,6 -295,8 +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;
Simple merge
@@@ -190,7 -190,34 +190,7 @@@ int ceph_compare_options(struct ceph_op
  }
  EXPORT_SYMBOL(ceph_compare_options);
  
- static int parse_fsid(const char *str, struct ceph_fsid *fsid)
 -/*
 - * 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;
 -}
 -
+ int ceph_parse_fsid(const char *str, struct ceph_fsid *fsid)
  {
        int i = 0;
        char tmp[3];
Simple merge