1. 07 9月, 2017 5 次提交
  2. 01 9月, 2017 1 次提交
  3. 17 7月, 2017 1 次提交
    • Y
      ceph: fix race in concurrent readdir · 84583cfb
      Yan, Zheng 提交于
      For a large directory, program needs to issue multiple readdir
      syscalls to get all dentries. When there are multiple programs
      read the directory concurrently. Following sequence of events
      can happen.
      
       - program calls readdir with pos = 2. ceph sends readdir request
         to mds. The reply contains N1 entries. ceph adds these N1 entries
         to readdir cache.
       - program calls readdir with pos = N1+2. The readdir is satisfied
         by the readdir cache, N2 entries are returned. (Other program
         calls readdir in the middle, which fills the cache)
       - program calls readdir with pos = N1+N2+2. ceph sends readdir
         request to mds. The reply contains N3 entries and it reaches
         directory end. ceph adds these N3 entries to the readdir cache
         and marks directory complete.
      
      The second readdir call does not update fi->readdir_cache_idx.
      ceph add the last N3 entries to wrong places.
      
      Cc: stable@vger.kernel.org # v4.3+
      Signed-off-by: N"Yan, Zheng" <zyan@redhat.com>
      Signed-off-by: NIlya Dryomov <idryomov@gmail.com>
      84583cfb
  4. 07 7月, 2017 11 次提交
  5. 15 6月, 2017 3 次提交
  6. 25 5月, 2017 1 次提交
  7. 09 5月, 2017 2 次提交
    • D
      fs: ceph: CURRENT_TIME with ktime_get_real_ts() · 1134e091
      Deepa Dinamani 提交于
      CURRENT_TIME is not y2038 safe.  The macro will be deleted and all the
      references to it will be replaced by ktime_get_* apis.
      
      struct timespec is also not y2038 safe.  Retain timespec for timestamp
      representation here as ceph uses it internally everywhere.  These
      references will be changed to use struct timespec64 in a separate patch.
      
      The current_fs_time() api is being changed to use vfs struct inode* as
      an argument instead of struct super_block*.
      
      Set the new mds client request r_stamp field using ktime_get_real_ts()
      instead of using current_fs_time().
      
      Also, since r_stamp is used as mtime on the server, use timespec_trunc()
      to truncate the timestamp, using the right granularity from the
      superblock.
      
      This api will be transitioned to be y2038 safe along with vfs.
      
      Link: http://lkml.kernel.org/r/1491613030-11599-5-git-send-email-deepa.kernel@gmail.comSigned-off-by: NDeepa Dinamani <deepa.kernel@gmail.com>
      Reviewed-by: NArnd Bergmann <arnd@arndb.de>
      M:	Ilya Dryomov <idryomov@gmail.com>
      M:	"Yan, Zheng" <zyan@redhat.com>
      M:	Sage Weil <sage@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1134e091
    • M
      treewide: use kv[mz]alloc* rather than opencoded variants · 752ade68
      Michal Hocko 提交于
      There are many code paths opencoding kvmalloc.  Let's use the helper
      instead.  The main difference to kvmalloc is that those users are
      usually not considering all the aspects of the memory allocator.  E.g.
      allocation requests <= 32kB (with 4kB pages) are basically never failing
      and invoke OOM killer to satisfy the allocation.  This sounds too
      disruptive for something that has a reasonable fallback - the vmalloc.
      On the other hand those requests might fallback to vmalloc even when the
      memory allocator would succeed after several more reclaim/compaction
      attempts previously.  There is no guarantee something like that happens
      though.
      
      This patch converts many of those places to kv[mz]alloc* helpers because
      they are more conservative.
      
      Link: http://lkml.kernel.org/r/20170306103327.2766-2-mhocko@kernel.orgSigned-off-by: NMichal Hocko <mhocko@suse.com>
      Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> # Xen bits
      Acked-by: NKees Cook <keescook@chromium.org>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Acked-by: Andreas Dilger <andreas.dilger@intel.com> # Lustre
      Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> # KVM/s390
      Acked-by: Dan Williams <dan.j.williams@intel.com> # nvdim
      Acked-by: David Sterba <dsterba@suse.com> # btrfs
      Acked-by: Ilya Dryomov <idryomov@gmail.com> # Ceph
      Acked-by: Tariq Toukan <tariqt@mellanox.com> # mlx4
      Acked-by: Leon Romanovsky <leonro@mellanox.com> # mlx5
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Anton Vorontsov <anton@enomsg.org>
      Cc: Colin Cross <ccross@android.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
      Cc: Ben Skeggs <bskeggs@redhat.com>
      Cc: Kent Overstreet <kent.overstreet@gmail.com>
      Cc: Santosh Raspatur <santosh@chelsio.com>
      Cc: Hariprasad S <hariprasad@chelsio.com>
      Cc: Yishai Hadas <yishaih@mellanox.com>
      Cc: Oleg Drokin <oleg.drokin@intel.com>
      Cc: "Yan, Zheng" <zyan@redhat.com>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      752ade68
  8. 04 5月, 2017 16 次提交