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:14:03 -0400 |
commit | 5aea3dcd50215fa9563270251ad7323e2f2490ee (patch) | |
tree | 1bcaaf4d5ff7b443c3776af771b228a5fad903b0 /fs/ceph/xattr.c | |
parent | 9dd2845ccb40452d4ac943231ea34aade4a02c68 (diff) |
libceph: a major OSD client update
This is a major sync up, up to ~Jewel. The highlights are:
- per-session request trees (vs a global per-client tree)
- per-session locking (vs a global per-client rwlock)
- homeless OSD session
- no ad-hoc global per-client lists
- support for pool quotas
- foundation for watch/notify v2 support
- foundation for map check (pool deletion detection) support
The switchover is incomplete: lingering requests can be setup and
teared down but aren't ever reestablished. This functionality is
restored with the introduction of the new lingering infrastructure
(ceph_osd_linger_request, linger_work, etc) in a later commit.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/ceph/xattr.c')
-rw-r--r-- | fs/ceph/xattr.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c index 9410abdef3ce..5afabc4bf4c7 100644 --- a/fs/ceph/xattr.c +++ b/fs/ceph/xattr.c | |||
@@ -75,7 +75,7 @@ static size_t ceph_vxattrcb_layout(struct ceph_inode_info *ci, char *val, | |||
75 | char buf[128]; | 75 | char buf[128]; |
76 | 76 | ||
77 | dout("ceph_vxattrcb_layout %p\n", &ci->vfs_inode); | 77 | dout("ceph_vxattrcb_layout %p\n", &ci->vfs_inode); |
78 | down_read(&osdc->map_sem); | 78 | down_read(&osdc->lock); |
79 | pool_name = ceph_pg_pool_name_by_id(osdc->osdmap, pool); | 79 | pool_name = ceph_pg_pool_name_by_id(osdc->osdmap, pool); |
80 | if (pool_name) { | 80 | if (pool_name) { |
81 | size_t len = strlen(pool_name); | 81 | size_t len = strlen(pool_name); |
@@ -107,7 +107,7 @@ static size_t ceph_vxattrcb_layout(struct ceph_inode_info *ci, char *val, | |||
107 | ret = -ERANGE; | 107 | ret = -ERANGE; |
108 | } | 108 | } |
109 | } | 109 | } |
110 | up_read(&osdc->map_sem); | 110 | up_read(&osdc->lock); |
111 | return ret; | 111 | return ret; |
112 | } | 112 | } |
113 | 113 | ||
@@ -141,13 +141,13 @@ static size_t ceph_vxattrcb_layout_pool(struct ceph_inode_info *ci, | |||
141 | s64 pool = ceph_file_layout_pg_pool(ci->i_layout); | 141 | s64 pool = ceph_file_layout_pg_pool(ci->i_layout); |
142 | const char *pool_name; | 142 | const char *pool_name; |
143 | 143 | ||
144 | down_read(&osdc->map_sem); | 144 | down_read(&osdc->lock); |
145 | pool_name = ceph_pg_pool_name_by_id(osdc->osdmap, pool); | 145 | pool_name = ceph_pg_pool_name_by_id(osdc->osdmap, pool); |
146 | if (pool_name) | 146 | if (pool_name) |
147 | ret = snprintf(val, size, "%s", pool_name); | 147 | ret = snprintf(val, size, "%s", pool_name); |
148 | else | 148 | else |
149 | ret = snprintf(val, size, "%lld", (unsigned long long)pool); | 149 | ret = snprintf(val, size, "%lld", (unsigned long long)pool); |
150 | up_read(&osdc->map_sem); | 150 | up_read(&osdc->lock); |
151 | return ret; | 151 | return ret; |
152 | } | 152 | } |
153 | 153 | ||