• Ilya Dryomov's avatar
    libceph: enable large, variable-sized OSD requests · 3f1af42a
    Ilya Dryomov authored
    Turn r_ops into a flexible array member to enable large, consisting of
    up to 16 ops, OSD requests.  The use case is scattered writeback in
    cephfs and, as far as the kernel client is concerned, 16 is just a made
    up number.
    
    r_ops had size 3 for copyup+hint+write, but copyup is really a special
    case - it can only happen once.  ceph_osd_request_cache is therefore
    stuffed with num_ops=2 requests, anything bigger than that is allocated
    with kmalloc().  req_mempool is backed by ceph_osd_request_cache, which
    means either num_ops=1 or num_ops=2 for use_mempool=true - all existing
    users (ceph_writepages_start(), ceph_osdc_writepages()) are fine with
    that.
    Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
    3f1af42a
rbd.c 146 KB