diff options
author | Ilya Dryomov <idryomov@gmail.com> | 2016-04-28 10:07:26 -0400 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2016-05-25 19:12:30 -0400 |
commit | 9dd2845ccb40452d4ac943231ea34aade4a02c68 (patch) | |
tree | d7c5be5f87c642b45a92eec573a657207b27b899 /include/linux/ceph | |
parent | 7a28f59bf9fb220cdf56ac6ab539fc4a0ae59414 (diff) |
libceph: protect osdc->osd_lru list with a spinlock
OSD client is getting moved from the big per-client lock to a set of
per-session locks. The big rwlock would only be held for read most of
the time, so a global osdc->osd_lru needs additional protection.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'include/linux/ceph')
-rw-r--r-- | include/linux/ceph/osd_client.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/ceph/osd_client.h b/include/linux/ceph/osd_client.h index 2415dc0cb008..486d681694c4 100644 --- a/include/linux/ceph/osd_client.h +++ b/include/linux/ceph/osd_client.h | |||
@@ -224,6 +224,7 @@ struct ceph_osd_client { | |||
224 | struct mutex request_mutex; | 224 | struct mutex request_mutex; |
225 | struct rb_root osds; /* osds */ | 225 | struct rb_root osds; /* osds */ |
226 | struct list_head osd_lru; /* idle osds */ | 226 | struct list_head osd_lru; /* idle osds */ |
227 | spinlock_t osd_lru_lock; | ||
227 | u64 last_tid; /* tid of last request */ | 228 | u64 last_tid; /* tid of last request */ |
228 | struct rb_root requests; /* pending requests */ | 229 | struct rb_root requests; /* pending requests */ |
229 | struct list_head req_lru; /* in-flight lru */ | 230 | struct list_head req_lru; /* in-flight lru */ |