You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
libceph: handle_one_map()
Separate osdmap handling from decoding and iterating over a bag of maps in a fresh MOSDMap message. This sets up the scene for the updated OSD client. Of particular importance here is the addition of pi->was_full, which can be used to answer "did this pool go full -> not-full in this map?". This is the key bit for supporting pool quotas. We won't be able to downgrade map_sem for much longer, so drop downgrade_write(). Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
@@ -115,6 +115,7 @@ extern const char *ceph_sub_str[];
|
||||
bool ceph_monc_want_map(struct ceph_mon_client *monc, int sub, u32 epoch,
|
||||
bool continuous);
|
||||
void ceph_monc_got_map(struct ceph_mon_client *monc, int sub, u32 epoch);
|
||||
void ceph_monc_renew_subs(struct ceph_mon_client *monc);
|
||||
|
||||
extern void ceph_monc_request_next_osdmap(struct ceph_mon_client *monc);
|
||||
extern int ceph_monc_wait_osdmap(struct ceph_mon_client *monc, u32 epoch,
|
||||
|
||||
@@ -45,6 +45,8 @@ struct ceph_pg_pool_info {
|
||||
s64 write_tier; /* wins for read+write ops */
|
||||
u64 flags; /* CEPH_POOL_FLAG_* */
|
||||
char *name;
|
||||
|
||||
bool was_full; /* for handle_one_map() */
|
||||
};
|
||||
|
||||
static inline bool ceph_can_shift_osds(struct ceph_pg_pool_info *pool)
|
||||
|
||||
Reference in New Issue
Block a user