Merge lp:~ubuntu-branches/ubuntu/natty/ceph/natty-201103250159 into lp:ubuntu/natty/ceph
- Natty (11.04)
- natty-201103250159
- Merge into natty
Status: | Work in progress |
---|---|
Proposed branch: | lp:~ubuntu-branches/ubuntu/natty/ceph/natty-201103250159 |
Merge into: | lp:ubuntu/natty/ceph |
Diff against target: |
2653 lines (+2008/-64) (has conflicts) 37 files modified
.pc/.version (+1/-0) .pc/applied-patches (+1/-0) .pc/fix-mkcephfs-path.patch/src/Makefile.am (+772/-0) configure (+37/-0) configure.ac (+8/-0) debian/ceph.install (+41/-0) debian/ceph.lintian (+4/-0) debian/ceph.lintian-overrides (+7/-0) debian/ceph.logrotate (+9/-0) debian/changelog (+24/-0) debian/compat (+4/-0) debian/control (+213/-0) debian/copyright (+69/-0) debian/libceph1-dev.install (+6/-0) debian/libceph1.install (+5/-0) debian/libcrush1-dev.install (+9/-0) debian/libcrush1.install (+5/-0) debian/librados1-dev.install (+13/-0) debian/librados1.install (+5/-0) debian/move_dbg_files.sh (+8/-0) debian/rules (+68/-0) debian/source/format (+4/-0) src/.git_version (+4/-0) src/client/Client.cc (+18/-0) src/common/signal.cc (+163/-0) src/include/ceph_strings.cc (+6/-0) src/include/rados.h (+11/-0) src/mds/MDS.cc (+6/-0) src/mon/MDSMonitor.cc (+9/-0) src/msg/Message.cc (+6/-0) src/msg/Message.h (+4/-0) src/os/FileStore.cc (+45/-0) src/osd/OSD.cc (+50/-0) src/osd/OSD.h (+4/-0) src/osd/PG.cc (+328/-64) src/osd/PG.h (+15/-0) src/osd/ReplicatedPG.cc (+26/-0) Text conflict in configure Text conflict in configure.ac Text conflict in debian/ceph.install Text conflict in debian/ceph.lintian-overrides Text conflict in debian/changelog Text conflict in debian/compat Text conflict in debian/control Text conflict in debian/copyright Text conflict in debian/libceph1-dev.install Text conflict in debian/libceph1.install Text conflict in debian/libcrush1-dev.install Text conflict in debian/libcrush1.install Text conflict in debian/librados1-dev.install Text conflict in debian/librados1.install Text conflict in debian/rules Text conflict in debian/source/format Text conflict in src/.git_version Text conflict in src/client/Client.cc Text conflict in src/common/signal.cc Text conflict in src/include/ceph_strings.cc Text conflict in src/include/rados.h Text conflict in src/mds/MDS.cc Text conflict in src/mon/MDSMonitor.cc Text conflict in src/msg/Message.cc Text conflict in src/msg/Message.h Text conflict in src/os/FileStore.cc Text conflict in src/osd/OSD.cc Text conflict in src/osd/OSD.h Text conflict in src/osd/PG.cc Text conflict in src/osd/PG.h Text conflict in src/osd/ReplicatedPG.cc |
To merge this branch: | bzr merge lp:~ubuntu-branches/ubuntu/natty/ceph/natty-201103250159 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ubuntu branches | Pending | ||
Review via email: mp+55056@code.launchpad.net |
Commit message
Description of the change
The package history in the archive and the history in the bzr branch differ. As the archive is authoritative the history of lp:ubuntu/natty/ceph now reflects that and the old bzr branch has been pushed to lp:~ubuntu-branches/ubuntu/natty/ceph/natty-201103250159. A merge should be performed if necessary.
Unmerged revisions
- 6. By Micah Gersten
-
debian/control: add Homepage
- 5. By Clint Byrum
-
* Removed .la files from libceph1-dev, libcrush1-dev and
librados1-dev (per Debian policy v3.9.1 10.2).
* debian/watch: added watch file - 4. By Clint Byrum
-
* New upstream release. (LP: #658670, LP: #684011)
* debian/patches/ fix-mkcephfs. patch: dropped (applied upstream)
* Removed .la files from libcrush1-dev and librados1-dev (per Debian
policy v3.9.1 10.2).
* debian/control: adding pkg-config as a build dependency
* debian/control: depend on libcrypto++-dev instead of libssl-dev - 3. By Clint Byrum
-
New upstream release.
Preview Diff
1 | === added directory '.pc' | |||
2 | === added file '.pc/.version' | |||
3 | --- .pc/.version 1970-01-01 00:00:00 +0000 | |||
4 | +++ .pc/.version 2011-03-28 07:08:46 +0000 | |||
5 | @@ -0,0 +1,1 @@ | |||
6 | 1 | 2 | ||
7 | 0 | 2 | ||
8 | === added file '.pc/applied-patches' | |||
9 | --- .pc/applied-patches 1970-01-01 00:00:00 +0000 | |||
10 | +++ .pc/applied-patches 2011-03-28 07:08:46 +0000 | |||
11 | @@ -0,0 +1,1 @@ | |||
12 | 1 | fix-mkcephfs-path.patch | ||
13 | 0 | 2 | ||
14 | === added directory '.pc/fix-mkcephfs-path.patch' | |||
15 | === added directory '.pc/fix-mkcephfs-path.patch/src' | |||
16 | === added file '.pc/fix-mkcephfs-path.patch/src/Makefile.am' | |||
17 | --- .pc/fix-mkcephfs-path.patch/src/Makefile.am 1970-01-01 00:00:00 +0000 | |||
18 | +++ .pc/fix-mkcephfs-path.patch/src/Makefile.am 2011-03-28 07:08:46 +0000 | |||
19 | @@ -0,0 +1,772 @@ | |||
20 | 1 | # | ||
21 | 2 | # note: the old Makefile is at Makefile.old | ||
22 | 3 | # | ||
23 | 4 | |||
24 | 5 | AUTOMAKE_OPTIONS = gnu | ||
25 | 6 | |||
26 | 7 | bin_PROGRAMS = | ||
27 | 8 | sbin_PROGRAMS = | ||
28 | 9 | bin_SCRIPTS = crun | ||
29 | 10 | |||
30 | 11 | # monitor | ||
31 | 12 | cmon_SOURCES = cmon.cc msg/SimpleMessenger.cc | ||
32 | 13 | cmon_LDADD = libmon.a libcrush.a libcommon.a -lpthread -lm -lcrypto | ||
33 | 14 | bin_PROGRAMS += cmon | ||
34 | 15 | |||
35 | 16 | # osd | ||
36 | 17 | cosd_SOURCES = cosd.cc msg/SimpleMessenger.cc objclass/class_debug.cc \ | ||
37 | 18 | objclass/class_api.cc | ||
38 | 19 | cosd_LDADD = libosd.a libos.a libcrush.a libcommon.a -ldl -lpthread -lm -lcrypto | ||
39 | 20 | bin_PROGRAMS += cosd | ||
40 | 21 | |||
41 | 22 | # mds | ||
42 | 23 | cmds_SOURCES = cmds.cc msg/SimpleMessenger.cc | ||
43 | 24 | cmds_LDADD = libmds.a libosdc.a libcrush.a libcommon.a -lpthread -lm -lcrypto | ||
44 | 25 | bin_PROGRAMS += cmds | ||
45 | 26 | |||
46 | 27 | # admin tools | ||
47 | 28 | ceph_SOURCES = ceph.cc msg/SimpleMessenger.cc | ||
48 | 29 | ceph_LDADD = libcrush.a libcommon.a -ledit -lpthread -lm -lcrypto | ||
49 | 30 | cconf_SOURCES = cconf.cc | ||
50 | 31 | cconf_LDADD = libcommon.a -lpthread -lm -lcrypto | ||
51 | 32 | cauthtool_SOURCES = cauthtool.cc | ||
52 | 33 | cauthtool_LDADD = libcommon.a -lpthread -lm -lcrypto | ||
53 | 34 | bin_PROGRAMS += ceph cconf cauthtool | ||
54 | 35 | |||
55 | 36 | monmaptool_SOURCES = monmaptool.cc | ||
56 | 37 | monmaptool_LDADD = libcommon.a -lpthread -lm -lcrypto | ||
57 | 38 | crushtool_SOURCES = crushtool.cc | ||
58 | 39 | crushtool_LDADD = libcrush.a libcommon.a -lpthread -lm -lcrypto | ||
59 | 40 | osdmaptool_SOURCES = osdmaptool.cc | ||
60 | 41 | osdmaptool_LDADD = libcrush.a libcommon.a -lpthread -lm -lcrypto | ||
61 | 42 | bin_PROGRAMS += monmaptool crushtool osdmaptool | ||
62 | 43 | |||
63 | 44 | mount_ceph_SOURCES = mount/mount.ceph.c | ||
64 | 45 | noinst_PROGRAMS = mount.ceph | ||
65 | 46 | |||
66 | 47 | # synthetic client | ||
67 | 48 | csyn_SOURCES = csyn.cc msg/SimpleMessenger.cc | ||
68 | 49 | csyn_LDADD = libclient.a libosdc.a libcrush.a libcommon.a -lpthread -lm -lcrypto | ||
69 | 50 | bin_PROGRAMS += csyn | ||
70 | 51 | |||
71 | 52 | core: cmon cosd cmds ceph cconf monmaptool osdmaptool crushtool csyn | ||
72 | 53 | |||
73 | 54 | |||
74 | 55 | # fuse targets? | ||
75 | 56 | if WITH_FUSE | ||
76 | 57 | cfuse_SOURCES = cfuse.cc msg/SimpleMessenger.cc client/fuse.cc client/fuse_ll.cc | ||
77 | 58 | cfuse_LDADD = -lfuse libclient.a libosdc.a libcrush.a libcommon.a -lpthread -lm -lcrypto | ||
78 | 59 | bin_PROGRAMS += cfuse | ||
79 | 60 | |||
80 | 61 | #if WITH_DEBUG | ||
81 | 62 | #fakefuse_SOURCES = fakefuse.cc msg/FakeMessenger.cc client/fuse.cc client/fuse_ll.cc | ||
82 | 63 | #fakefuse_LDADD = -lfuse libmon.a libmds.a libosd.a libos.a \ | ||
83 | 64 | # libclient.a libosdc.a libcrush.a | ||
84 | 65 | #bin_PROGRAMS += fakefuse | ||
85 | 66 | #endif | ||
86 | 67 | |||
87 | 68 | endif | ||
88 | 69 | |||
89 | 70 | # debug targets? | ||
90 | 71 | if WITH_DEBUG | ||
91 | 72 | |||
92 | 73 | psim_SOURCES = psim.cc | ||
93 | 74 | psim_LDADD = libcrush.a libcommon.a -lpthread -lm -lcrypto | ||
94 | 75 | bin_PROGRAMS += psim | ||
95 | 76 | |||
96 | 77 | testmsgr_SOURCES = testmsgr.cc msg/SimpleMessenger.cc | ||
97 | 78 | testmsgr_LDADD = libcommon.a -lpthread -lm -lcrypto | ||
98 | 79 | bin_PROGRAMS += testmsgr | ||
99 | 80 | |||
100 | 81 | test_ioctls_SOURCES = client/test_ioctls.c | ||
101 | 82 | bin_PROGRAMS += test_ioctls | ||
102 | 83 | |||
103 | 84 | dumpjournal_SOURCES = dumpjournal.cc msg/SimpleMessenger.cc | ||
104 | 85 | dumpjournal_LDADD = libosdc.a libcrush.a libcommon.a -lpthread -lm -lcrypto | ||
105 | 86 | dupstore_SOURCES = dupstore.cc | ||
106 | 87 | dupstore_LDADD = libos.a libcommon.a -lpthread -lm -lcrypto | ||
107 | 88 | streamtest_SOURCES = streamtest.cc | ||
108 | 89 | streamtest_LDADD = libos.a libcommon.a -lpthread -lm -lcrypto | ||
109 | 90 | bin_PROGRAMS += dumpjournal dupstore streamtest | ||
110 | 91 | |||
111 | 92 | test_trans_SOURCES = test_trans.cc | ||
112 | 93 | test_trans_LDADD = libos.a libcommon.a -lpthread -lm -lcrypto | ||
113 | 94 | bin_PROGRAMS += test_trans | ||
114 | 95 | |||
115 | 96 | |||
116 | 97 | #fakesyn_SOURCES = fakesyn.cc msg/FakeMessenger.cc | ||
117 | 98 | #fakesyn_LDADD = libmon.a libmds.a libosd.a libos.a \ | ||
118 | 99 | # libclient.a libosdc.a libcrush.a libcommon.a | ||
119 | 100 | #bin_PROGRAMS += fakesyn | ||
120 | 101 | |||
121 | 102 | endif | ||
122 | 103 | |||
123 | 104 | |||
124 | 105 | ########## | ||
125 | 106 | BUILT_SOURCES = | ||
126 | 107 | lib_LTLIBRARIES = | ||
127 | 108 | |||
128 | 109 | # libcrush.so | ||
129 | 110 | libcrush_la_SOURCES = \ | ||
130 | 111 | crush/builder.c \ | ||
131 | 112 | crush/mapper.c \ | ||
132 | 113 | crush/crush.c \ | ||
133 | 114 | crush/hash.c | ||
134 | 115 | libcrush_la_CFLAGS = ${AM_CFLAGS} | ||
135 | 116 | libcrush_la_CXXFLAGS = ${AM_CXXFLAGS} | ||
136 | 117 | libcrush_la_LDFLAGS = -version-info 1:0:0 -export-symbols-regex 'crush_.*' -lm | ||
137 | 118 | lib_LTLIBRARIES += libcrush.la | ||
138 | 119 | |||
139 | 120 | # libceph | ||
140 | 121 | libceph_la_SOURCES = \ | ||
141 | 122 | libceph.cc \ | ||
142 | 123 | client/Client.cc \ | ||
143 | 124 | msg/SimpleMessenger.cc \ | ||
144 | 125 | ${libcommon_a_SOURCES} \ | ||
145 | 126 | ${libosdc_a_SOURCES} | ||
146 | 127 | libceph_la_CFLAGS = ${AM_CFLAGS} | ||
147 | 128 | libceph_la_CXXFLAGS= ${AM_CXXFLAGS} | ||
148 | 129 | libceph_la_LIBADD = libcrush.la | ||
149 | 130 | libceph_la_LDFLAGS = -version-info 1:0:0 -export-symbols-regex '^ceph_.*' -lpthread -lssl | ||
150 | 131 | lib_LTLIBRARIES += libceph.la | ||
151 | 132 | |||
152 | 133 | if WITH_DEBUG | ||
153 | 134 | testceph_SOURCES = client/testceph.cc | ||
154 | 135 | testceph_LDADD = libceph.la libcrush.la -lpthread -lm -lcrypto | ||
155 | 136 | bin_PROGRAMS += testceph | ||
156 | 137 | endif | ||
157 | 138 | |||
158 | 139 | # librados | ||
159 | 140 | librados_SOURCES = \ | ||
160 | 141 | librados.cc \ | ||
161 | 142 | msg/SimpleMessenger.cc \ | ||
162 | 143 | osdc/Objecter.cc \ | ||
163 | 144 | ${libcommon_a_SOURCES} | ||
164 | 145 | librados_la_SOURCES = ${librados_SOURCES} | ||
165 | 146 | librados_la_CFLAGS = ${AM_CFLAGS} | ||
166 | 147 | librados_la_CXXFLAGS = ${AM_CXXFLAGS} | ||
167 | 148 | librados_la_LIBADD = libcrush.la | ||
168 | 149 | librados_la_LDFLAGS = -version-info 1:0:0 -export-symbols-regex '^rados_.*' -lpthread | ||
169 | 150 | lib_LTLIBRARIES += librados.la | ||
170 | 151 | |||
171 | 152 | librados_a_SOURCES = ${librados_SOURCES} | ||
172 | 153 | librados_a_CFLAGS = ${AM_CFLAGS} | ||
173 | 154 | librados_a_CXXFLAGS = ${AM_CXXFLAGS} | ||
174 | 155 | |||
175 | 156 | rados_SOURCES = rados.cc | ||
176 | 157 | rados_LDADD = librados.la -lpthread -lm -lcrypto | ||
177 | 158 | bin_PROGRAMS += rados | ||
178 | 159 | |||
179 | 160 | if WITH_DEBUG | ||
180 | 161 | testrados_SOURCES = testrados.c | ||
181 | 162 | testrados_LDADD = librados.la -lpthread -lm -lcrypto | ||
182 | 163 | testradospp_SOURCES = testradospp.cc | ||
183 | 164 | testradospp_LDADD = librados.la -lpthread -lm -lcrypto | ||
184 | 165 | bin_PROGRAMS += testrados testradospp | ||
185 | 166 | endif | ||
186 | 167 | |||
187 | 168 | radosacl_SOURCES = radosacl.cc | ||
188 | 169 | radosacl_LDADD = librados.la -lpthread -lm -lcrypto | ||
189 | 170 | rbd_SOURCES = rbd.cc | ||
190 | 171 | rbd_LDADD = librados.la -lpthread -lm -lcrypto | ||
191 | 172 | bin_PROGRAMS += radosacl rbd | ||
192 | 173 | |||
193 | 174 | if WITH_RADOSGW | ||
194 | 175 | libradosgw_a_SOURCES = \ | ||
195 | 176 | rgw/rgw_fs.cc \ | ||
196 | 177 | rgw/rgw_rados.cc \ | ||
197 | 178 | rgw/rgw_acl.cc \ | ||
198 | 179 | rgw/rgw_user.cc \ | ||
199 | 180 | rgw/rgw_access.cc \ | ||
200 | 181 | rgw/rgw_op.cc \ | ||
201 | 182 | rgw/rgw_rest.cc \ | ||
202 | 183 | rgw/rgw_common.cc | ||
203 | 184 | libradosgw_a_CFLAGS = ${AM_CFLAGS} | ||
204 | 185 | # lib_LTLIBRARIES += libradosgw.a | ||
205 | 186 | |||
206 | 187 | radosgw_SOURCES = rgw/rgw_main.cc | ||
207 | 188 | radosgw_LDADD = libradosgw.a librados.a libcrush.a -lfcgi -lcrypto -lexpat -lpthread -lm | ||
208 | 189 | radosgw_admin_SOURCES = rgw/rgw_admin.cc | ||
209 | 190 | radosgw_admin_LDADD = libradosgw.a librados.a libcrush.a -lfcgi -lcrypto -lexpat -lpthread -lm | ||
210 | 191 | bin_PROGRAMS += radosgw radosgw_admin | ||
211 | 192 | endif | ||
212 | 193 | |||
213 | 194 | if WITH_DEBUG | ||
214 | 195 | testcrypto_SOURCES = testcrypto.cc | ||
215 | 196 | testcrypto_LDADD = libcommon.a -lpthread -lm -lcrypto | ||
216 | 197 | bin_PROGRAMS += testcrypto | ||
217 | 198 | |||
218 | 199 | testkeys_SOURCES = testkeys.cc | ||
219 | 200 | testkeys_LDADD = libmon.a libcommon.a -lpthread -lm -lcrypto | ||
220 | 201 | bin_PROGRAMS += testkeys | ||
221 | 202 | endif | ||
222 | 203 | |||
223 | 204 | |||
224 | 205 | ## rados object classes | ||
225 | 206 | |||
226 | 207 | #libcls_crypto.so: cls_crypto.cc | ||
227 | 208 | # ${CXX} -I. -fPIC -shared -g -o libcls_crypto.so -lcrypto cls_crypto.cc | ||
228 | 209 | #BUILT_SOURCES += libcls_crypto.so | ||
229 | 210 | |||
230 | 211 | #libcls_acl.so: cls_acl.cc | ||
231 | 212 | # ${CXX} -I. -fPIC -shared -g -o libcls_acl.so cls_acl.cc | ||
232 | 213 | #BUILT_SOURCES += libcls_acl.so | ||
233 | 214 | |||
234 | 215 | # rbd: rados block device class | ||
235 | 216 | libcls_rbd_la_SOURCES = cls_rbd.cc | ||
236 | 217 | libcls_rbd_la_CFLAGS = ${AM_CFLAGS} | ||
237 | 218 | libcls_rbd_la_CXXFLAGS= ${AM_CXXFLAGS} | ||
238 | 219 | libcls_rbd_la_LDFLAGS = -version-info 1:0:0 -export-symbols-regex '.*__cls_.*' -lpthread | ||
239 | 220 | |||
240 | 221 | radoslibdir = $(libdir)/rados-classes | ||
241 | 222 | radoslib_LTLIBRARIES = libcls_rbd.la | ||
242 | 223 | |||
243 | 224 | |||
244 | 225 | ## hadoop client | ||
245 | 226 | if WITH_HADOOPCLIENT | ||
246 | 227 | JAVA_BASE = /usr/lib/jvm/java-6-sun | ||
247 | 228 | libhadoopcephfs_la_SOURCES = client/hadoop/CephFSInterface.cc | ||
248 | 229 | libhadoopcephfs_la_LIBADD = libceph.la | ||
249 | 230 | libhadoopcephfs_la_CFLAGS = ${AM_CFLAGS} | ||
250 | 231 | libhadoopcephfs_la_CXXFLAGS = ${AM_CXXFLAGS} | ||
251 | 232 | libhadoopcephfs_la_LDFLAGS = -version-info 1:0:0 -export-symbols-regex 'hadoopcephfs_.*' | ||
252 | 233 | lib_LTLIBRARIES += libhadoopcephfs.la | ||
253 | 234 | endif | ||
254 | 235 | |||
255 | 236 | |||
256 | 237 | # shell scripts | ||
257 | 238 | editpaths = sed \ | ||
258 | 239 | -e 's|@bindir[@]|$(bindir)|g' \ | ||
259 | 240 | -e 's|@libdir[@]|$(libdir)|g' \ | ||
260 | 241 | -e 's|@sysconfdir[@]|$(sysconfdir)|g' \ | ||
261 | 242 | -e 's|@datadir[@]|$(pkgdatadir)|g' \ | ||
262 | 243 | -e 's|@prefix[@]|$(prefix)|g' | ||
263 | 244 | |||
264 | 245 | init-ceph mkcephfs cclass: init-ceph.in mkcephfs.in cclass.in Makefile | ||
265 | 246 | rm -f $@ $@.tmp | ||
266 | 247 | $(editpaths) '$(srcdir)/$@.in' >$@.tmp | ||
267 | 248 | chmod +x $@.tmp | ||
268 | 249 | chmod a-w $@.tmp | ||
269 | 250 | mv $@.tmp $@ | ||
270 | 251 | |||
271 | 252 | BUILT_SOURCES += init-ceph mkcephfs cclass | ||
272 | 253 | |||
273 | 254 | ## | ||
274 | 255 | LDADD = | ||
275 | 256 | |||
276 | 257 | |||
277 | 258 | AM_CXXFLAGS = -Wall -D__CEPH__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -rdynamic | ||
278 | 259 | AM_CFLAGS = -Wall -D__CEPH__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -rdynamic | ||
279 | 260 | AM_LDFLAGS = | ||
280 | 261 | |||
281 | 262 | if WITH_LIBATOMIC | ||
282 | 263 | AM_LDFLAGS += -latomic_ops | ||
283 | 264 | endif | ||
284 | 265 | |||
285 | 266 | noinst_LIBRARIES = \ | ||
286 | 267 | libcommon.a libcrush.a \ | ||
287 | 268 | libmon.a libmds.a libosdc.a libosd.a libclient.a \ | ||
288 | 269 | libos.a librados.a libradosgw.a | ||
289 | 270 | |||
290 | 271 | noinst_LIBRARIES += #libcephclient_so.a | ||
291 | 272 | |||
292 | 273 | # extra bits | ||
293 | 274 | EXTRA_DIST = verify-mds-journal.sh vstart.sh stop.sh \ | ||
294 | 275 | crun ceph_common.sh init-ceph.in mkcephfs.in cclass.in cclsinfo make_version check_version | ||
295 | 276 | |||
296 | 277 | install-data-local: | ||
297 | 278 | $(install_sh_SCRIPT) -m 0755 cclass $(DESTDIR)$(bindir)/cclass | ||
298 | 279 | $(install_sh_SCRIPT) -m 0755 cclsinfo $(DESTDIR)$(bindir)/cclsinfo | ||
299 | 280 | sh -c "if [ \"$(sbindir)\" = \"/usr/sbin\" ]; then mkdir -p $(DESTDIR)/sbin ; $(install_sh_SCRIPT) -m 0755 mount.ceph $(DESTDIR)/sbin/mount.ceph ; else mkdir -p $(DESTDIR)$(sbindir) ; $(install_sh_SCRIPT) -m 0755 mount.ceph $(DESTDIR)$(sbindir)/mount.ceph ; fi" | ||
300 | 281 | mkdir -p $(DESTDIR)$(sbindir)/ceph | ||
301 | 282 | $(install_sh_SCRIPT) -m 0755 mkcephfs $(DESTDIR)$(sbindir)/mkcephfs | ||
302 | 283 | mkdir -p $(DESTDIR)$(libdir)/ceph | ||
303 | 284 | $(install_sh_SCRIPT) -m 0755 ceph_common.sh $(DESTDIR)$(libdir)/ceph/ceph_common.sh | ||
304 | 285 | mkdir -p $(DESTDIR)$(sysconfdir)/ceph | ||
305 | 286 | $(install_sh_SCRIPT) -m 0600 sample.ceph.conf $(DESTDIR)$(sysconfdir)/ceph/sample.ceph.conf | ||
306 | 287 | $(install_sh_SCRIPT) -m 0755 fetch_config $(DESTDIR)$(sysconfdir)/ceph/sample.fetch_config | ||
307 | 288 | mkdir -p $(DESTDIR)$(includedir)/ceph | ||
308 | 289 | $(install_sh_SCRIPT) -m 0644 client/libceph.h $(DESTDIR)$(includedir)/ceph/libceph.h | ||
309 | 290 | mkdir -p $(DESTDIR)$(includedir)/rados | ||
310 | 291 | $(install_sh_SCRIPT) -m 0644 include/librados.h $(DESTDIR)$(includedir)/rados/librados.h | ||
311 | 292 | $(install_sh_SCRIPT) -m 0644 include/librados.hpp $(DESTDIR)$(includedir)/rados/librados.hpp | ||
312 | 293 | $(install_sh_SCRIPT) -m 0644 include/buffer.h $(DESTDIR)$(includedir)/rados/buffer.h | ||
313 | 294 | $(install_sh_SCRIPT) -m 0644 include/atomic.h $(DESTDIR)$(includedir)/rados/atomic.h | ||
314 | 295 | $(install_sh_SCRIPT) -m 0644 include/page.h $(DESTDIR)$(includedir)/rados/page.h | ||
315 | 296 | $(install_sh_SCRIPT) -m 0644 include/crc32c.h $(DESTDIR)$(includedir)/rados/crc32c.h | ||
316 | 297 | $(install_sh_SCRIPT) -m 0644 include/Spinlock.h $(DESTDIR)$(includedir)/rados/Spinlock.h | ||
317 | 298 | $(install_sh_SCRIPT) -m 0644 include/assert.h $(DESTDIR)$(includedir)/rados/assert.h | ||
318 | 299 | mkdir -p $(DESTDIR)$(includedir)/crush | ||
319 | 300 | $(install_sh_SCRIPT) -m 0644 crush/hash.h $(DESTDIR)$(includedir)/crush/hash.h | ||
320 | 301 | $(install_sh_SCRIPT) -m 0644 crush/crush.h $(DESTDIR)$(includedir)/crush/crush.h | ||
321 | 302 | $(install_sh_SCRIPT) -m 0644 crush/types.h $(DESTDIR)$(includedir)/crush/types.h | ||
322 | 303 | $(install_sh_SCRIPT) -m 0644 crush/mapper.h $(DESTDIR)$(includedir)/crush/mapper.h | ||
323 | 304 | |||
324 | 305 | FORCE: | ||
325 | 306 | .git_version: FORCE | ||
326 | 307 | ./check_version .git_version | ||
327 | 308 | ceph_ver.h: .git_version | ||
328 | 309 | ./make_version .git_version ceph_ver.h | ||
329 | 310 | |||
330 | 311 | ceph_ver.c: ceph_ver.h | ||
331 | 312 | common/debug.cc: ceph_ver.h | ||
332 | 313 | config.cc: ceph_ver.h | ||
333 | 314 | |||
334 | 315 | |||
335 | 316 | |||
336 | 317 | # cleaning | ||
337 | 318 | clean-local: | ||
338 | 319 | -rm *.so | ||
339 | 320 | # -rm crush/*.cxx | ||
340 | 321 | # -rm CrushWrapper.pm | ||
341 | 322 | |||
342 | 323 | # libs | ||
343 | 324 | libcommon_a_SOURCES = \ | ||
344 | 325 | ceph_ver.c \ | ||
345 | 326 | $(libcommon_files) | ||
346 | 327 | |||
347 | 328 | # this list ommits the ceph_ver.c file | ||
348 | 329 | libcommon_files = \ | ||
349 | 330 | auth/AuthAuthorizeHandler.cc \ | ||
350 | 331 | auth/AuthClientHandler.cc \ | ||
351 | 332 | auth/AuthSupported.cc \ | ||
352 | 333 | auth/cephx/CephxAuthorizeHandler.cc \ | ||
353 | 334 | auth/cephx/CephxClientHandler.cc \ | ||
354 | 335 | auth/cephx/CephxProtocol.cc \ | ||
355 | 336 | auth/none/AuthNoneAuthorizeHandler.cc \ | ||
356 | 337 | auth/Crypto.cc \ | ||
357 | 338 | auth/ExportControl.cc \ | ||
358 | 339 | auth/KeyRing.cc \ | ||
359 | 340 | auth/RotatingKeyRing.cc \ | ||
360 | 341 | common/LogClient.cc \ | ||
361 | 342 | msg/Message.cc \ | ||
362 | 343 | msg/msg_types.cc \ | ||
363 | 344 | common/BackTrace.cc \ | ||
364 | 345 | common/Logger.cc \ | ||
365 | 346 | common/ClassLibrary.cc \ | ||
366 | 347 | common/Clock.cc \ | ||
367 | 348 | common/Timer.cc \ | ||
368 | 349 | common/Finisher.cc \ | ||
369 | 350 | common/sctp_crc32.c\ | ||
370 | 351 | common/assert.cc \ | ||
371 | 352 | common/dyn_snprintf.c \ | ||
372 | 353 | common/WorkQueue.cc \ | ||
373 | 354 | common/ConfUtils.cc \ | ||
374 | 355 | common/MemoryModel.cc \ | ||
375 | 356 | common/armor.c \ | ||
376 | 357 | common/base64.c \ | ||
377 | 358 | common/str_list.cc \ | ||
378 | 359 | mon/MonMap.cc \ | ||
379 | 360 | mon/MonClient.cc \ | ||
380 | 361 | osd/OSDMap.cc \ | ||
381 | 362 | mds/MDSMap.cc \ | ||
382 | 363 | common/tls.cc \ | ||
383 | 364 | common/common_init.cc \ | ||
384 | 365 | common/buffer.cc \ | ||
385 | 366 | common/debug.cc \ | ||
386 | 367 | include/ceph_fs.cc \ | ||
387 | 368 | include/ceph_hash.cc \ | ||
388 | 369 | include/ceph_strings.cc \ | ||
389 | 370 | include/ceph_frag.cc \ | ||
390 | 371 | config.cc \ | ||
391 | 372 | common/page.cc \ | ||
392 | 373 | common/lockdep.cc | ||
393 | 374 | |||
394 | 375 | libcrush_a_SOURCES = \ | ||
395 | 376 | crush/builder.c \ | ||
396 | 377 | crush/mapper.c \ | ||
397 | 378 | crush/crush.c \ | ||
398 | 379 | crush/hash.c | ||
399 | 380 | |||
400 | 381 | libmon_a_SOURCES = \ | ||
401 | 382 | auth/cephx/CephxKeyServer.cc \ | ||
402 | 383 | auth/cephx/CephxServiceHandler.cc \ | ||
403 | 384 | auth/AuthServiceHandler.cc \ | ||
404 | 385 | mon/Monitor.cc \ | ||
405 | 386 | mon/Paxos.cc \ | ||
406 | 387 | mon/PaxosService.cc \ | ||
407 | 388 | mon/OSDMonitor.cc \ | ||
408 | 389 | mon/MDSMonitor.cc \ | ||
409 | 390 | mon/MonmapMonitor.cc \ | ||
410 | 391 | mon/PGMonitor.cc \ | ||
411 | 392 | mon/LogMonitor.cc \ | ||
412 | 393 | mon/ClassMonitor.cc \ | ||
413 | 394 | mon/AuthMonitor.cc \ | ||
414 | 395 | mon/Elector.cc \ | ||
415 | 396 | mon/MonitorStore.cc \ | ||
416 | 397 | mon/MonCaps.cc | ||
417 | 398 | |||
418 | 399 | libmds_a_SOURCES = \ | ||
419 | 400 | mds/MDS.cc \ | ||
420 | 401 | mds/locks.c \ | ||
421 | 402 | mds/journal.cc \ | ||
422 | 403 | mds/Server.cc \ | ||
423 | 404 | mds/MDCache.cc \ | ||
424 | 405 | mds/Locker.cc \ | ||
425 | 406 | mds/Migrator.cc \ | ||
426 | 407 | mds/MDBalancer.cc \ | ||
427 | 408 | mds/CDentry.cc \ | ||
428 | 409 | mds/CDir.cc \ | ||
429 | 410 | mds/CInode.cc \ | ||
430 | 411 | mds/LogEvent.cc \ | ||
431 | 412 | mds/MDSTable.cc \ | ||
432 | 413 | mds/InoTable.cc \ | ||
433 | 414 | mds/MDSTableClient.cc \ | ||
434 | 415 | mds/MDSTableServer.cc \ | ||
435 | 416 | mds/AnchorServer.cc \ | ||
436 | 417 | mds/AnchorClient.cc \ | ||
437 | 418 | mds/SnapServer.cc \ | ||
438 | 419 | mds/snap.cc \ | ||
439 | 420 | mds/SessionMap.cc \ | ||
440 | 421 | mds/MDLog.cc | ||
441 | 422 | |||
442 | 423 | libos_a_SOURCES = \ | ||
443 | 424 | os/FileJournal.cc \ | ||
444 | 425 | os/FileStore.cc \ | ||
445 | 426 | os/JournalingObjectStore.cc | ||
446 | 427 | |||
447 | 428 | libosd_a_SOURCES = \ | ||
448 | 429 | osd/PG.cc \ | ||
449 | 430 | osd/ReplicatedPG.cc \ | ||
450 | 431 | osd/Ager.cc \ | ||
451 | 432 | osd/OSD.cc \ | ||
452 | 433 | osd/OSDCaps.cc \ | ||
453 | 434 | common/ClassHandler.cc | ||
454 | 435 | # osd/RAID4PG.cc | ||
455 | 436 | |||
456 | 437 | libosdc_a_SOURCES = \ | ||
457 | 438 | osdc/Objecter.cc \ | ||
458 | 439 | osdc/ObjectCacher.cc \ | ||
459 | 440 | osdc/Filer.cc \ | ||
460 | 441 | osdc/Journaler.cc | ||
461 | 442 | |||
462 | 443 | libclient_a_SOURCES = \ | ||
463 | 444 | client/Client.cc \ | ||
464 | 445 | client/SyntheticClient.cc \ | ||
465 | 446 | client/Trace.cc | ||
466 | 447 | |||
467 | 448 | # headers... and everything else we want to include in a 'make dist' | ||
468 | 449 | # that autotools doesn't magically identify. | ||
469 | 450 | noinst_HEADERS = \ | ||
470 | 451 | auth/cephx/CephxAuthorizeHandler.h\ | ||
471 | 452 | auth/cephx/CephxKeyServer.h\ | ||
472 | 453 | auth/cephx/CephxProtocol.h\ | ||
473 | 454 | auth/cephx/CephxClientHandler.h\ | ||
474 | 455 | auth/cephx/CephxServiceHandler.h\ | ||
475 | 456 | auth/none/AuthNoneAuthorizeHandler.h\ | ||
476 | 457 | auth/none/AuthNoneClientHandler.h\ | ||
477 | 458 | auth/none/AuthNoneServiceHandler.h\ | ||
478 | 459 | auth/none/AuthNoneProtocol.h\ | ||
479 | 460 | auth/Auth.h\ | ||
480 | 461 | auth/AuthSupported.h\ | ||
481 | 462 | auth/AuthClientHandler.h\ | ||
482 | 463 | auth/AuthServiceHandler.h\ | ||
483 | 464 | auth/AuthAuthorizeHandler.h\ | ||
484 | 465 | auth/KeyRing.h\ | ||
485 | 466 | auth/RotatingKeyRing.h\ | ||
486 | 467 | auth/Crypto.h\ | ||
487 | 468 | auth/ExportControl.h\ | ||
488 | 469 | ceph_ver.h \ | ||
489 | 470 | client/Client.h\ | ||
490 | 471 | client/SyntheticClient.h\ | ||
491 | 472 | client/Trace.h\ | ||
492 | 473 | client/fuse.h\ | ||
493 | 474 | client/fuse_ll.h\ | ||
494 | 475 | client/ioctl.h\ | ||
495 | 476 | client/libceph.h\ | ||
496 | 477 | client/hadoop/CephFSInterface.h\ | ||
497 | 478 | cls_acl.cc\ | ||
498 | 479 | cls_crypto.cc\ | ||
499 | 480 | cm.txt\ | ||
500 | 481 | common/arch.h\ | ||
501 | 482 | common/armor.h\ | ||
502 | 483 | common/base64.h\ | ||
503 | 484 | common/debug.h\ | ||
504 | 485 | common/lockdep.h\ | ||
505 | 486 | common/BackTrace.h\ | ||
506 | 487 | common/ClassVersion.h\ | ||
507 | 488 | common/Clock.h\ | ||
508 | 489 | common/common_init.h\ | ||
509 | 490 | common/Cond.h\ | ||
510 | 491 | common/dyn_snprintf.h\ | ||
511 | 492 | common/ClassHandler.h\ | ||
512 | 493 | common/ConfUtils.h\ | ||
513 | 494 | common/DecayCounter.h\ | ||
514 | 495 | common/Finisher.h\ | ||
515 | 496 | common/LogType.h\ | ||
516 | 497 | common/Logger.h\ | ||
517 | 498 | common/MemoryModel.h\ | ||
518 | 499 | common/Mutex.h\ | ||
519 | 500 | common/RWLock.h\ | ||
520 | 501 | common/Semaphore.h\ | ||
521 | 502 | common/Thread.h\ | ||
522 | 503 | common/Throttle.h\ | ||
523 | 504 | common/Timer.h\ | ||
524 | 505 | common/tls.h\ | ||
525 | 506 | common/WorkQueue.h\ | ||
526 | 507 | common/LogClient.h\ | ||
527 | 508 | config.h\ | ||
528 | 509 | crush/CrushWrapper.h\ | ||
529 | 510 | crush/CrushWrapper.i\ | ||
530 | 511 | crush/builder.h\ | ||
531 | 512 | crush/crush.h\ | ||
532 | 513 | crush/grammar.h\ | ||
533 | 514 | crush/hash.h\ | ||
534 | 515 | crush/mapper.h\ | ||
535 | 516 | crush/sample.txt\ | ||
536 | 517 | crush/types.h\ | ||
537 | 518 | fetch_config\ | ||
538 | 519 | include/ClassLibrary.h\ | ||
539 | 520 | include/Context.h\ | ||
540 | 521 | include/CompatSet.h\ | ||
541 | 522 | include/Distribution.h\ | ||
542 | 523 | include/LogEntry.h\ | ||
543 | 524 | include/Spinlock.h\ | ||
544 | 525 | include/assert.h\ | ||
545 | 526 | include/atomic.h\ | ||
546 | 527 | include/bitmapper.h\ | ||
547 | 528 | include/blobhash.h\ | ||
548 | 529 | include/buffer.h\ | ||
549 | 530 | include/byteorder.h\ | ||
550 | 531 | include/ceph_frag.h\ | ||
551 | 532 | include/ceph_fs.h\ | ||
552 | 533 | include/ceph_hash.h\ | ||
553 | 534 | include/color.h\ | ||
554 | 535 | include/crc32c.h\ | ||
555 | 536 | include/cstring.h\ | ||
556 | 537 | include/encoding.h\ | ||
557 | 538 | include/err.h\ | ||
558 | 539 | include/error.h\ | ||
559 | 540 | include/filepath.h\ | ||
560 | 541 | include/frag.h\ | ||
561 | 542 | include/hash.h\ | ||
562 | 543 | include/intarith.h\ | ||
563 | 544 | include/interval_set.h\ | ||
564 | 545 | include/inttypes.h\ | ||
565 | 546 | include/librados.h\ | ||
566 | 547 | include/librados.hpp\ | ||
567 | 548 | include/lru.h\ | ||
568 | 549 | include/msgr.h\ | ||
569 | 550 | include/nstring.h\ | ||
570 | 551 | include/object.h\ | ||
571 | 552 | include/page.h\ | ||
572 | 553 | include/rangeset.h\ | ||
573 | 554 | include/rados.h\ | ||
574 | 555 | include/rbd_types.h\ | ||
575 | 556 | include/statlite.h\ | ||
576 | 557 | include/str_list.h\ | ||
577 | 558 | include/triple.h\ | ||
578 | 559 | include/tstring.h\ | ||
579 | 560 | include/types.h\ | ||
580 | 561 | include/uofs.h\ | ||
581 | 562 | include/utime.h\ | ||
582 | 563 | include/dlist.h\ | ||
583 | 564 | include/elist.h\ | ||
584 | 565 | include/xlist.h\ | ||
585 | 566 | mds/locks.c\ | ||
586 | 567 | mds/locks.h\ | ||
587 | 568 | mds/Anchor.h\ | ||
588 | 569 | mds/AnchorClient.h\ | ||
589 | 570 | mds/AnchorServer.h\ | ||
590 | 571 | mds/CDentry.h\ | ||
591 | 572 | mds/CDir.h\ | ||
592 | 573 | mds/CInode.h\ | ||
593 | 574 | mds/Capability.h\ | ||
594 | 575 | mds/InoTable.h\ | ||
595 | 576 | mds/LocalLock.h\ | ||
596 | 577 | mds/Locker.h\ | ||
597 | 578 | mds/LogEvent.h\ | ||
598 | 579 | mds/LogSegment.h\ | ||
599 | 580 | mds/MDBalancer.h\ | ||
600 | 581 | mds/MDCache.h\ | ||
601 | 582 | mds/MDLog.h\ | ||
602 | 583 | mds/MDS.h\ | ||
603 | 584 | mds/MDSMap.h\ | ||
604 | 585 | mds/MDSTable.h\ | ||
605 | 586 | mds/MDSTableServer.h\ | ||
606 | 587 | mds/MDSTableClient.h\ | ||
607 | 588 | mds/Migrator.h\ | ||
608 | 589 | mds/ScatterLock.h\ | ||
609 | 590 | mds/Server.h\ | ||
610 | 591 | mds/SessionMap.h\ | ||
611 | 592 | mds/SimpleLock.h\ | ||
612 | 593 | mds/SnapClient.h\ | ||
613 | 594 | mds/SnapServer.h\ | ||
614 | 595 | mds/events/ECommitted.h\ | ||
615 | 596 | mds/events/EExport.h\ | ||
616 | 597 | mds/events/EFragment.h\ | ||
617 | 598 | mds/events/EImportFinish.h\ | ||
618 | 599 | mds/events/EImportStart.h\ | ||
619 | 600 | mds/events/EMetaBlob.h\ | ||
620 | 601 | mds/events/EOpen.h\ | ||
621 | 602 | mds/events/ESession.h\ | ||
622 | 603 | mds/events/ESessions.h\ | ||
623 | 604 | mds/events/ESlaveUpdate.h\ | ||
624 | 605 | mds/events/EString.h\ | ||
625 | 606 | mds/events/ESubtreeMap.h\ | ||
626 | 607 | mds/events/ETableClient.h\ | ||
627 | 608 | mds/events/ETableServer.h\ | ||
628 | 609 | mds/events/EUpdate.h\ | ||
629 | 610 | mds/mds_table_types.h\ | ||
630 | 611 | mds/mdstypes.h\ | ||
631 | 612 | mds/snap.h\ | ||
632 | 613 | messages/MAuth.h\ | ||
633 | 614 | messages/MAuthReply.h\ | ||
634 | 615 | messages/MCacheExpire.h\ | ||
635 | 616 | messages/MClass.h\ | ||
636 | 617 | messages/MClassAck.h\ | ||
637 | 618 | messages/MClientCaps.h\ | ||
638 | 619 | messages/MClientCapRelease.h\ | ||
639 | 620 | messages/MClientLease.h\ | ||
640 | 621 | messages/MClientReconnect.h\ | ||
641 | 622 | messages/MClientReply.h\ | ||
642 | 623 | messages/MClientRequest.h\ | ||
643 | 624 | messages/MClientRequestForward.h\ | ||
644 | 625 | messages/MClientSession.h\ | ||
645 | 626 | messages/MClientSnap.h\ | ||
646 | 627 | messages/MDentryLink.h\ | ||
647 | 628 | messages/MDentryUnlink.h\ | ||
648 | 629 | messages/MDirUpdate.h\ | ||
649 | 630 | messages/MDiscover.h\ | ||
650 | 631 | messages/MDiscoverReply.h\ | ||
651 | 632 | messages/MExportCaps.h\ | ||
652 | 633 | messages/MExportCapsAck.h\ | ||
653 | 634 | messages/MExportDir.h\ | ||
654 | 635 | messages/MExportDirAck.h\ | ||
655 | 636 | messages/MExportDirCancel.h\ | ||
656 | 637 | messages/MExportDirDiscover.h\ | ||
657 | 638 | messages/MExportDirDiscoverAck.h\ | ||
658 | 639 | messages/MExportDirFinish.h\ | ||
659 | 640 | messages/MExportDirNotify.h\ | ||
660 | 641 | messages/MExportDirNotifyAck.h\ | ||
661 | 642 | messages/MExportDirPrep.h\ | ||
662 | 643 | messages/MExportDirPrepAck.h\ | ||
663 | 644 | messages/MGenericMessage.h\ | ||
664 | 645 | messages/MGetPoolStats.h\ | ||
665 | 646 | messages/MGetPoolStatsReply.h\ | ||
666 | 647 | messages/MHeartbeat.h\ | ||
667 | 648 | messages/MInodeFileCaps.h\ | ||
668 | 649 | messages/MLock.h\ | ||
669 | 650 | messages/MLog.h\ | ||
670 | 651 | messages/MLogAck.h\ | ||
671 | 652 | messages/MMDSBeacon.h\ | ||
672 | 653 | messages/MMDSCacheRejoin.h\ | ||
673 | 654 | messages/MMDSLoadTargets.h\ | ||
674 | 655 | messages/MMDSFragmentNotify.h\ | ||
675 | 656 | messages/MMDSMap.h\ | ||
676 | 657 | messages/MMDSResolve.h\ | ||
677 | 658 | messages/MMDSResolveAck.h\ | ||
678 | 659 | messages/MMDSSlaveRequest.h\ | ||
679 | 660 | messages/MMDSTableRequest.h\ | ||
680 | 661 | messages/MMonCommand.h\ | ||
681 | 662 | messages/MMonCommandAck.h\ | ||
682 | 663 | messages/MMonElection.h\ | ||
683 | 664 | messages/MMonGetMap.h\ | ||
684 | 665 | messages/MMonGlobalID.h\ | ||
685 | 666 | messages/MMonMap.h\ | ||
686 | 667 | messages/MMonObserve.h\ | ||
687 | 668 | messages/MMonObserveNotify.h\ | ||
688 | 669 | messages/MMonPaxos.h\ | ||
689 | 670 | messages/MMonSubscribe.h\ | ||
690 | 671 | messages/MMonSubscribeAck.h\ | ||
691 | 672 | messages/MOSDAlive.h\ | ||
692 | 673 | messages/MOSDBoot.h\ | ||
693 | 674 | messages/MOSDFailure.h\ | ||
694 | 675 | messages/MOSDMap.h\ | ||
695 | 676 | messages/MOSDOp.h\ | ||
696 | 677 | messages/MOSDOpReply.h\ | ||
697 | 678 | messages/MOSDPGCreate.h\ | ||
698 | 679 | messages/MOSDPGInfo.h\ | ||
699 | 680 | messages/MOSDPGLog.h\ | ||
700 | 681 | messages/MOSDPGNotify.h\ | ||
701 | 682 | messages/MOSDPGQuery.h\ | ||
702 | 683 | messages/MOSDPGRemove.h\ | ||
703 | 684 | messages/MOSDPGTemp.h\ | ||
704 | 685 | messages/MOSDPGTrim.h\ | ||
705 | 686 | messages/MOSDPing.h\ | ||
706 | 687 | messages/MOSDScrub.h\ | ||
707 | 688 | messages/MOSDSubOp.h\ | ||
708 | 689 | messages/MOSDSubOpReply.h\ | ||
709 | 690 | messages/MPGStats.h\ | ||
710 | 691 | messages/MPGStatsAck.h\ | ||
711 | 692 | messages/MPing.h\ | ||
712 | 693 | messages/MPoolOp.h\ | ||
713 | 694 | messages/MPoolOpReply.h\ | ||
714 | 695 | messages/MRemoveSnaps.h\ | ||
715 | 696 | messages/MRoute.h\ | ||
716 | 697 | messages/MForward.h\ | ||
717 | 698 | messages/MStatfs.h\ | ||
718 | 699 | messages/MStatfsReply.h\ | ||
719 | 700 | messages/PaxosServiceMessage.h\ | ||
720 | 701 | mon/AuthMonitor.h\ | ||
721 | 702 | mon/ClassMonitor.h\ | ||
722 | 703 | mon/Elector.h\ | ||
723 | 704 | mon/LogMonitor.h\ | ||
724 | 705 | mon/MDSMonitor.h\ | ||
725 | 706 | mon/MonmapMonitor.h\ | ||
726 | 707 | mon/MonCaps.h\ | ||
727 | 708 | mon/MonClient.h\ | ||
728 | 709 | mon/MonMap.h\ | ||
729 | 710 | mon/Monitor.h\ | ||
730 | 711 | mon/MonitorStore.h\ | ||
731 | 712 | mon/OSDMonitor.h\ | ||
732 | 713 | mon/PGMap.h\ | ||
733 | 714 | mon/PGMonitor.h\ | ||
734 | 715 | mon/Paxos.h\ | ||
735 | 716 | mon/PaxosService.h\ | ||
736 | 717 | mon/Session.h\ | ||
737 | 718 | mon/mon_types.h\ | ||
738 | 719 | mount/canonicalize.c\ | ||
739 | 720 | mount/mtab.c\ | ||
740 | 721 | msg/Dispatcher.h\ | ||
741 | 722 | msg/FakeMessenger.h\ | ||
742 | 723 | msg/Message.h\ | ||
743 | 724 | msg/Messenger.h\ | ||
744 | 725 | msg/SimpleMessenger.h\ | ||
745 | 726 | msg/msg_types.h\ | ||
746 | 727 | msg/tcp.cc\ | ||
747 | 728 | msg/tcp.h\ | ||
748 | 729 | objclass/objclass.h\ | ||
749 | 730 | os/btrfs_ioctl.h\ | ||
750 | 731 | os/BDBMap.h\ | ||
751 | 732 | os/Fake.h\ | ||
752 | 733 | os/FakeStoreBDBCollections.h\ | ||
753 | 734 | os/FileJournal.h\ | ||
754 | 735 | os/FileStore.h\ | ||
755 | 736 | os/Journal.h\ | ||
756 | 737 | os/JournalingObjectStore.h\ | ||
757 | 738 | os/ObjectStore.h\ | ||
758 | 739 | osbdb/OSBDB.h\ | ||
759 | 740 | osd/Ager.h\ | ||
760 | 741 | osd/OSD.h\ | ||
761 | 742 | osd/OSDCaps.h\ | ||
762 | 743 | osd/OSDMap.h\ | ||
763 | 744 | osd/ObjectVersioner.h\ | ||
764 | 745 | osd/PG.h\ | ||
765 | 746 | osd/PGLS.h\ | ||
766 | 747 | osd/RAID4PG.h\ | ||
767 | 748 | osd/ReplicatedPG.h\ | ||
768 | 749 | osd/osd_types.h\ | ||
769 | 750 | osdc/rados_bencher.h\ | ||
770 | 751 | osdc/Blinker.h\ | ||
771 | 752 | osdc/Filer.h\ | ||
772 | 753 | osdc/Journaler.h\ | ||
773 | 754 | osdc/ObjectCacher.h\ | ||
774 | 755 | osdc/Objecter.h\ | ||
775 | 756 | rgw/rgw_access.h\ | ||
776 | 757 | rgw/rgw_acl.h\ | ||
777 | 758 | rgw/rgw_fs.h\ | ||
778 | 759 | rgw/rgw_rados.h\ | ||
779 | 760 | rgw/rgw_op.h\ | ||
780 | 761 | rgw/rgw_rest.h\ | ||
781 | 762 | rgw/rgw_common.h\ | ||
782 | 763 | rgw/rgw_user.h\ | ||
783 | 764 | sample.ceph.conf | ||
784 | 765 | |||
785 | 766 | all_sources = $(cmon_SOURCES) $(ceph_SOURCES) $(cauthtool_SOURCES) $(monmaptool_SOURCES) \ | ||
786 | 767 | $(crushtool_SOURCES) $(osdmaptool_SOURCES) $(cconf_SOURCES) $(mount_ceph_SOURCES) $(cmds_SOURCES) \ | ||
787 | 768 | $(dumpjournal_SOURCES) $(cosd_SOURCES) $(dupstore_SOURCES) $(streamtest_SOURCES) $(csyn_SOURCES) \ | ||
788 | 769 | $(testmsgr_SOURCES) $(cfuse_SOURCES) $(fakefuse_SOURCES) $(psim_SOURCES) \ | ||
789 | 770 | $(libcrush_so_a_SOURCES) $(libcommon_files) $(libcrush_a_SOURCES) \ | ||
790 | 771 | $(libmon_a_SOURCES) $(libmds_a_SOURCES) $(libos_a_SOURCES) $(libosd_a_SOURCES) \ | ||
791 | 772 | $(libosdc_a_SOURCES) $(libclient_a_SOURCES) | ||
792 | 0 | 773 | ||
793 | === modified file 'configure' | |||
794 | --- configure 2011-02-25 15:17:26 +0000 | |||
795 | +++ configure 2011-03-28 07:08:46 +0000 | |||
796 | @@ -1,6 +1,10 @@ | |||
797 | 1 | #! /bin/sh | 1 | #! /bin/sh |
798 | 2 | # Guess values for system-dependent variables and create Makefiles. | 2 | # Guess values for system-dependent variables and create Makefiles. |
799 | 3 | <<<<<<< TREE | ||
800 | 3 | # Generated by GNU Autoconf 2.61 for Ceph distributed file system 0.24.3. | 4 | # Generated by GNU Autoconf 2.61 for Ceph distributed file system 0.24.3. |
801 | 5 | ======= | ||
802 | 6 | # Generated by GNU Autoconf 2.61 for Ceph distributed file system 0.24.2. | ||
803 | 7 | >>>>>>> MERGE-SOURCE | ||
804 | 4 | # | 8 | # |
805 | 5 | # Report bugs to <Sage Weil <sage@newdream.net>>. | 9 | # Report bugs to <Sage Weil <sage@newdream.net>>. |
806 | 6 | # | 10 | # |
807 | @@ -728,8 +732,13 @@ | |||
808 | 728 | # Identity of this package. | 732 | # Identity of this package. |
809 | 729 | PACKAGE_NAME='Ceph distributed file system' | 733 | PACKAGE_NAME='Ceph distributed file system' |
810 | 730 | PACKAGE_TARNAME='ceph' | 734 | PACKAGE_TARNAME='ceph' |
811 | 735 | <<<<<<< TREE | ||
812 | 731 | PACKAGE_VERSION='0.24.3' | 736 | PACKAGE_VERSION='0.24.3' |
813 | 732 | PACKAGE_STRING='Ceph distributed file system 0.24.3' | 737 | PACKAGE_STRING='Ceph distributed file system 0.24.3' |
814 | 738 | ======= | ||
815 | 739 | PACKAGE_VERSION='0.24.2' | ||
816 | 740 | PACKAGE_STRING='Ceph distributed file system 0.24.2' | ||
817 | 741 | >>>>>>> MERGE-SOURCE | ||
818 | 733 | PACKAGE_BUGREPORT='Sage Weil <sage@newdream.net>' | 742 | PACKAGE_BUGREPORT='Sage Weil <sage@newdream.net>' |
819 | 734 | 743 | ||
820 | 735 | # Factoring default headers for most tests. | 744 | # Factoring default headers for most tests. |
821 | @@ -1422,7 +1431,11 @@ | |||
822 | 1422 | # Omit some internal or obsolete options to make the list less imposing. | 1431 | # Omit some internal or obsolete options to make the list less imposing. |
823 | 1423 | # This message is too long to be a string in the A/UX 3.1 sh. | 1432 | # This message is too long to be a string in the A/UX 3.1 sh. |
824 | 1424 | cat <<_ACEOF | 1433 | cat <<_ACEOF |
825 | 1434 | <<<<<<< TREE | ||
826 | 1425 | \`configure' configures Ceph distributed file system 0.24.3 to adapt to many kinds of systems. | 1435 | \`configure' configures Ceph distributed file system 0.24.3 to adapt to many kinds of systems. |
827 | 1436 | ======= | ||
828 | 1437 | \`configure' configures Ceph distributed file system 0.24.2 to adapt to many kinds of systems. | ||
829 | 1438 | >>>>>>> MERGE-SOURCE | ||
830 | 1426 | 1439 | ||
831 | 1427 | Usage: $0 [OPTION]... [VAR=VALUE]... | 1440 | Usage: $0 [OPTION]... [VAR=VALUE]... |
832 | 1428 | 1441 | ||
833 | @@ -1493,7 +1506,11 @@ | |||
834 | 1493 | 1506 | ||
835 | 1494 | if test -n "$ac_init_help"; then | 1507 | if test -n "$ac_init_help"; then |
836 | 1495 | case $ac_init_help in | 1508 | case $ac_init_help in |
837 | 1509 | <<<<<<< TREE | ||
838 | 1496 | short | recursive ) echo "Configuration of Ceph distributed file system 0.24.3:";; | 1510 | short | recursive ) echo "Configuration of Ceph distributed file system 0.24.3:";; |
839 | 1511 | ======= | ||
840 | 1512 | short | recursive ) echo "Configuration of Ceph distributed file system 0.24.2:";; | ||
841 | 1513 | >>>>>>> MERGE-SOURCE | ||
842 | 1497 | esac | 1514 | esac |
843 | 1498 | cat <<\_ACEOF | 1515 | cat <<\_ACEOF |
844 | 1499 | 1516 | ||
845 | @@ -1610,7 +1627,11 @@ | |||
846 | 1610 | test -n "$ac_init_help" && exit $ac_status | 1627 | test -n "$ac_init_help" && exit $ac_status |
847 | 1611 | if $ac_init_version; then | 1628 | if $ac_init_version; then |
848 | 1612 | cat <<\_ACEOF | 1629 | cat <<\_ACEOF |
849 | 1630 | <<<<<<< TREE | ||
850 | 1613 | Ceph distributed file system configure 0.24.3 | 1631 | Ceph distributed file system configure 0.24.3 |
851 | 1632 | ======= | ||
852 | 1633 | Ceph distributed file system configure 0.24.2 | ||
853 | 1634 | >>>>>>> MERGE-SOURCE | ||
854 | 1614 | generated by GNU Autoconf 2.61 | 1635 | generated by GNU Autoconf 2.61 |
855 | 1615 | 1636 | ||
856 | 1616 | Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, | 1637 | Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, |
857 | @@ -1624,7 +1645,11 @@ | |||
858 | 1624 | This file contains any messages produced by compilers while | 1645 | This file contains any messages produced by compilers while |
859 | 1625 | running configure, to aid debugging if configure makes a mistake. | 1646 | running configure, to aid debugging if configure makes a mistake. |
860 | 1626 | 1647 | ||
861 | 1648 | <<<<<<< TREE | ||
862 | 1627 | It was created by Ceph distributed file system $as_me 0.24.3, which was | 1649 | It was created by Ceph distributed file system $as_me 0.24.3, which was |
863 | 1650 | ======= | ||
864 | 1651 | It was created by Ceph distributed file system $as_me 0.24.2, which was | ||
865 | 1652 | >>>>>>> MERGE-SOURCE | ||
866 | 1628 | generated by GNU Autoconf 2.61. Invocation command line was | 1653 | generated by GNU Autoconf 2.61. Invocation command line was |
867 | 1629 | 1654 | ||
868 | 1630 | $ $0 $@ | 1655 | $ $0 $@ |
869 | @@ -2444,7 +2469,11 @@ | |||
870 | 2444 | 2469 | ||
871 | 2445 | # Define the identity of the package. | 2470 | # Define the identity of the package. |
872 | 2446 | PACKAGE=ceph | 2471 | PACKAGE=ceph |
873 | 2472 | <<<<<<< TREE | ||
874 | 2447 | VERSION=0.24.3 | 2473 | VERSION=0.24.3 |
875 | 2474 | ======= | ||
876 | 2475 | VERSION=0.24.2 | ||
877 | 2476 | >>>>>>> MERGE-SOURCE | ||
878 | 2448 | 2477 | ||
879 | 2449 | 2478 | ||
880 | 2450 | cat >>confdefs.h <<_ACEOF | 2479 | cat >>confdefs.h <<_ACEOF |
881 | @@ -23646,7 +23675,11 @@ | |||
882 | 23646 | # report actual input values of CONFIG_FILES etc. instead of their | 23675 | # report actual input values of CONFIG_FILES etc. instead of their |
883 | 23647 | # values after options handling. | 23676 | # values after options handling. |
884 | 23648 | ac_log=" | 23677 | ac_log=" |
885 | 23678 | <<<<<<< TREE | ||
886 | 23649 | This file was extended by Ceph distributed file system $as_me 0.24.3, which was | 23679 | This file was extended by Ceph distributed file system $as_me 0.24.3, which was |
887 | 23680 | ======= | ||
888 | 23681 | This file was extended by Ceph distributed file system $as_me 0.24.2, which was | ||
889 | 23682 | >>>>>>> MERGE-SOURCE | ||
890 | 23650 | generated by GNU Autoconf 2.61. Invocation command line was | 23683 | generated by GNU Autoconf 2.61. Invocation command line was |
891 | 23651 | 23684 | ||
892 | 23652 | CONFIG_FILES = $CONFIG_FILES | 23685 | CONFIG_FILES = $CONFIG_FILES |
893 | @@ -23699,7 +23732,11 @@ | |||
894 | 23699 | _ACEOF | 23732 | _ACEOF |
895 | 23700 | cat >>$CONFIG_STATUS <<_ACEOF | 23733 | cat >>$CONFIG_STATUS <<_ACEOF |
896 | 23701 | ac_cs_version="\\ | 23734 | ac_cs_version="\\ |
897 | 23735 | <<<<<<< TREE | ||
898 | 23702 | Ceph distributed file system config.status 0.24.3 | 23736 | Ceph distributed file system config.status 0.24.3 |
899 | 23737 | ======= | ||
900 | 23738 | Ceph distributed file system config.status 0.24.2 | ||
901 | 23739 | >>>>>>> MERGE-SOURCE | ||
902 | 23703 | configured by $0, generated by GNU Autoconf 2.61, | 23740 | configured by $0, generated by GNU Autoconf 2.61, |
903 | 23704 | with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" | 23741 | with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" |
904 | 23705 | 23742 | ||
905 | 23706 | 23743 | ||
906 | === modified file 'configure.ac' | |||
907 | --- configure.ac 2011-02-25 15:17:26 +0000 | |||
908 | +++ configure.ac 2011-03-28 07:08:46 +0000 | |||
909 | @@ -3,7 +3,11 @@ | |||
910 | 3 | 3 | ||
911 | 4 | # Autoconf | 4 | # Autoconf |
912 | 5 | AC_PREREQ(2.59) | 5 | AC_PREREQ(2.59) |
913 | 6 | <<<<<<< TREE | ||
914 | 6 | AC_INIT([Ceph distributed file system], [0.24.3], | 7 | AC_INIT([Ceph distributed file system], [0.24.3], |
915 | 8 | ======= | ||
916 | 9 | AC_INIT([Ceph distributed file system], [0.24.2], | ||
917 | 10 | >>>>>>> MERGE-SOURCE | ||
918 | 7 | [Sage Weil <sage@newdream.net>], | 11 | [Sage Weil <sage@newdream.net>], |
919 | 8 | [ceph]) | 12 | [ceph]) |
920 | 9 | 13 | ||
921 | @@ -12,7 +16,11 @@ | |||
922 | 12 | AC_CANONICAL_TARGET | 16 | AC_CANONICAL_TARGET |
923 | 13 | 17 | ||
924 | 14 | # Automake | 18 | # Automake |
925 | 19 | <<<<<<< TREE | ||
926 | 15 | AM_INIT_AUTOMAKE(ceph, 0.24.3) | 20 | AM_INIT_AUTOMAKE(ceph, 0.24.3) |
927 | 21 | ======= | ||
928 | 22 | AM_INIT_AUTOMAKE(ceph, 0.24.2) | ||
929 | 23 | >>>>>>> MERGE-SOURCE | ||
930 | 16 | AM_PROG_CC_C_O | 24 | AM_PROG_CC_C_O |
931 | 17 | AM_PROG_LIBTOOL | 25 | AM_PROG_LIBTOOL |
932 | 18 | 26 | ||
933 | 19 | 27 | ||
934 | === modified file 'debian/ceph.install' | |||
935 | --- debian/ceph.install 2011-02-25 15:17:26 +0000 | |||
936 | +++ debian/ceph.install 2011-03-28 07:08:46 +0000 | |||
937 | @@ -1,3 +1,4 @@ | |||
938 | 1 | <<<<<<< TREE | ||
939 | 1 | usr/bin/ceph | 2 | usr/bin/ceph |
940 | 2 | usr/bin/cephfs | 3 | usr/bin/cephfs |
941 | 3 | usr/bin/cconf | 4 | usr/bin/cconf |
942 | @@ -33,3 +34,43 @@ | |||
943 | 33 | usr/share/man/man8/cclsinfo.8 | 34 | usr/share/man/man8/cclsinfo.8 |
944 | 34 | usr/share/man/man8/cdebugpack.8 | 35 | usr/share/man/man8/cdebugpack.8 |
945 | 35 | usr/share/ceph_tool/gui_resources/* | 36 | usr/share/ceph_tool/gui_resources/* |
946 | 37 | ======= | ||
947 | 38 | usr/bin/ceph | ||
948 | 39 | usr/bin/cconf | ||
949 | 40 | usr/bin/cclass | ||
950 | 41 | usr/bin/cclsinfo | ||
951 | 42 | usr/bin/crushtool | ||
952 | 43 | usr/bin/monmaptool | ||
953 | 44 | usr/bin/osdmaptool | ||
954 | 45 | usr/bin/csyn | ||
955 | 46 | usr/bin/crun | ||
956 | 47 | usr/bin/cmon | ||
957 | 48 | usr/bin/cmds | ||
958 | 49 | usr/bin/cosd | ||
959 | 50 | usr/bin/cauthtool | ||
960 | 51 | usr/bin/rados | ||
961 | 52 | usr/bin/rbd | ||
962 | 53 | usr/sbin/mount.ceph sbin/mount.ceph | ||
963 | 54 | usr/sbin/mkcephfs sbin/mkcephfs | ||
964 | 55 | usr/lib/ceph/ceph_common.sh | ||
965 | 56 | usr/lib/rados-classes/* | ||
966 | 57 | usr/share/doc/ceph/sample.ceph.conf | ||
967 | 58 | usr/share/doc/ceph/sample.fetch_config | ||
968 | 59 | usr/share/man/man8/cmon.8 | ||
969 | 60 | usr/share/man/man8/cmds.8 | ||
970 | 61 | usr/share/man/man8/cosd.8 | ||
971 | 62 | usr/share/man/man8/mkcephfs.8 | ||
972 | 63 | usr/share/man/man8/crun.8 | ||
973 | 64 | usr/share/man/man8/csyn.8 | ||
974 | 65 | usr/share/man/man8/crushtool.8 | ||
975 | 66 | usr/share/man/man8/osdmaptool.8 | ||
976 | 67 | usr/share/man/man8/monmaptool.8 | ||
977 | 68 | usr/share/man/man8/cconf.8 | ||
978 | 69 | usr/share/man/man8/ceph.8 | ||
979 | 70 | usr/share/man/man8/mount.ceph.8 | ||
980 | 71 | usr/share/man/man8/cauthtool.8 | ||
981 | 72 | usr/share/man/man8/rados.8 | ||
982 | 73 | usr/share/man/man8/rbd.8 | ||
983 | 74 | usr/share/man/man8/cclass.8 | ||
984 | 75 | usr/share/man/man8/cclsinfo.8 | ||
985 | 76 | >>>>>>> MERGE-SOURCE | ||
986 | 36 | 77 | ||
987 | === added file 'debian/ceph.lintian' | |||
988 | --- debian/ceph.lintian 1970-01-01 00:00:00 +0000 | |||
989 | +++ debian/ceph.lintian 2011-03-28 07:08:46 +0000 | |||
990 | @@ -0,0 +1,4 @@ | |||
991 | 1 | # | ||
992 | 2 | # the rados classes should NOT be stripped. | ||
993 | 3 | # | ||
994 | 4 | ceph binary: unstripped-binary-or-object ./usr/lib/rados-classes/libcls_rbd.so.1.0.0 | ||
995 | 0 | 5 | ||
996 | === modified file 'debian/ceph.lintian-overrides' | |||
997 | --- debian/ceph.lintian-overrides 2011-02-25 15:17:26 +0000 | |||
998 | +++ debian/ceph.lintian-overrides 2011-03-28 07:08:46 +0000 | |||
999 | @@ -1,5 +1,12 @@ | |||
1000 | 1 | <<<<<<< TREE | ||
1001 | 1 | # | 2 | # |
1002 | 2 | # the rados classes should NOT be stripped. | 3 | # the rados classes should NOT be stripped. |
1003 | 3 | # | 4 | # |
1004 | 4 | ceph: unstripped-binary-or-object usr/lib/rados-classes/libcls_rbd.so.1.0.0 | 5 | ceph: unstripped-binary-or-object usr/lib/rados-classes/libcls_rbd.so.1.0.0 |
1005 | 5 | 6 | ||
1006 | 7 | ======= | ||
1007 | 8 | # | ||
1008 | 9 | # the rados classes should NOT be stripped. | ||
1009 | 10 | # | ||
1010 | 11 | ceph: unstripped-binary-or-object ./usr/lib/rados-classes/libcls_rbd.so.1.0.0 | ||
1011 | 12 | >>>>>>> MERGE-SOURCE | ||
1012 | 6 | 13 | ||
1013 | === added file 'debian/ceph.logrotate' | |||
1014 | --- debian/ceph.logrotate 1970-01-01 00:00:00 +0000 | |||
1015 | +++ debian/ceph.logrotate 2011-03-28 07:08:46 +0000 | |||
1016 | @@ -0,0 +1,9 @@ | |||
1017 | 1 | /var/log/ceph/*.log /var/log/ceph/stat/*.log { | ||
1018 | 2 | rotate 7 | ||
1019 | 3 | daily | ||
1020 | 4 | compress | ||
1021 | 5 | sharedscripts | ||
1022 | 6 | postrotate | ||
1023 | 7 | invoke-rc.d ceph reload >/dev/null || service ceph reload >/dev/null | ||
1024 | 8 | endscript | ||
1025 | 9 | } | ||
1026 | 0 | 10 | ||
1027 | === modified file 'debian/changelog' | |||
1028 | --- debian/changelog 2011-02-25 15:17:26 +0000 | |||
1029 | +++ debian/changelog 2011-03-28 07:08:46 +0000 | |||
1030 | @@ -1,3 +1,4 @@ | |||
1031 | 1 | <<<<<<< TREE | ||
1032 | 1 | ceph (0.24.3-2) unstable; urgency=low | 2 | ceph (0.24.3-2) unstable; urgency=low |
1033 | 2 | 3 | ||
1034 | 3 | * Make Ceph Linux only and build on all Linux archs (closes: #614890). | 4 | * Make Ceph Linux only and build on all Linux archs (closes: #614890). |
1035 | @@ -36,3 +37,26 @@ | |||
1036 | 36 | * Initial release (Closes: #506040) | 37 | * Initial release (Closes: #506040) |
1037 | 37 | 38 | ||
1038 | 38 | -- Sage Weil <sage@newdream.net> Sun, 21 Nov 2010 15:22:21 -0800 | 39 | -- Sage Weil <sage@newdream.net> Sun, 21 Nov 2010 15:22:21 -0800 |
1039 | 40 | ======= | ||
1040 | 41 | ceph (0.24.2-0ubuntu1) natty; urgency=low | ||
1041 | 42 | |||
1042 | 43 | [ Clint Byrum <clint@ubuntu.com> ] | ||
1043 | 44 | * New upstream release. (LP: #658670, LP: #684011) | ||
1044 | 45 | * debian/patches/fix-mkcephfs.patch: dropped (applied upstream) | ||
1045 | 46 | * Removed .la files from libceph1-dev, libcrush1-dev and | ||
1046 | 47 | librados1-dev (per Debian policy v3.9.1 10.2). | ||
1047 | 48 | * debian/control: adding pkg-config as a build dependency | ||
1048 | 49 | * debian/control: depend on libcrypto++-dev instead of libssl-dev | ||
1049 | 50 | * debian/watch: added watch file | ||
1050 | 51 | |||
1051 | 52 | [ Micah Gersten <micahg@ubuntu.com> ] | ||
1052 | 53 | * debian/control: add Homepage | ||
1053 | 54 | |||
1054 | 55 | -- Clint Byrum <clint@ubuntu.com> Sat, 12 Feb 2011 22:50:26 -0600 | ||
1055 | 56 | |||
1056 | 57 | ceph (0.21-0ubuntu1) maverick; urgency=low | ||
1057 | 58 | |||
1058 | 59 | * Initial release based on upstream package (LP: #607730) | ||
1059 | 60 | |||
1060 | 61 | -- Clint Byrum <clint@ubuntu.com> Fri, 30 Jul 2010 08:37:32 -0700 | ||
1061 | 62 | >>>>>>> MERGE-SOURCE | ||
1062 | 39 | 63 | ||
1063 | === modified file 'debian/compat' | |||
1064 | --- debian/compat 2011-02-25 15:17:26 +0000 | |||
1065 | +++ debian/compat 2011-03-28 07:08:46 +0000 | |||
1066 | @@ -1,1 +1,5 @@ | |||
1067 | 1 | <<<<<<< TREE | ||
1068 | 1 | 6 | 2 | 6 |
1069 | 3 | ======= | ||
1070 | 4 | 5 | ||
1071 | 5 | >>>>>>> MERGE-SOURCE | ||
1072 | 2 | 6 | ||
1073 | === modified file 'debian/control' | |||
1074 | --- debian/control 2011-02-25 15:17:26 +0000 | |||
1075 | +++ debian/control 2011-03-28 07:08:46 +0000 | |||
1076 | @@ -1,3 +1,4 @@ | |||
1077 | 1 | <<<<<<< TREE | ||
1078 | 1 | Source: ceph | 2 | Source: ceph |
1079 | 2 | Section: admin | 3 | Section: admin |
1080 | 3 | Priority: optional | 4 | Priority: optional |
1081 | @@ -234,3 +235,215 @@ | |||
1082 | 234 | service. | 235 | service. |
1083 | 235 | . | 236 | . |
1084 | 236 | This package contains debugging symbols for radosgw. | 237 | This package contains debugging symbols for radosgw. |
1085 | 238 | ======= | ||
1086 | 239 | Source: ceph | ||
1087 | 240 | Section: admin | ||
1088 | 241 | Priority: optional | ||
1089 | 242 | Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> | ||
1090 | 243 | XSBC-Original-Maintainer: Sage Weil <sage@newdream.net> | ||
1091 | 244 | Build-Depends: debhelper (>= 6.0.7~), autotools-dev, autoconf, automake, cdbs, libfuse-dev, libboost-dev, libedit-dev, libcrypto++-dev, libtool, libexpat1-dev, libfcgi-dev, libatomic-ops-dev, pkg-config | ||
1092 | 245 | Standards-Version: 3.9.1 | ||
1093 | 246 | Homepage: http://ceph.newdream.net/ | ||
1094 | 247 | |||
1095 | 248 | Package: ceph | ||
1096 | 249 | Architecture: any | ||
1097 | 250 | Depends: ${shlibs:Depends}, ${misc:Depends}, libedit2, hdparm, binutils | ||
1098 | 251 | Recommends: ceph-fuse, libceph1, librados1, libcrush1, btrfs-tools | ||
1099 | 252 | Description: distributed storage and file system | ||
1100 | 253 | Ceph is a distributed storage and network file system designed to provide | ||
1101 | 254 | excellent performance, reliability, and scalability. | ||
1102 | 255 | . | ||
1103 | 256 | This package contains all server daemons and management tools for creating, | ||
1104 | 257 | running, and administering a Ceph storage cluster. | ||
1105 | 258 | |||
1106 | 259 | Package: ceph-dbg | ||
1107 | 260 | Architecture: any | ||
1108 | 261 | Section: debug | ||
1109 | 262 | Priority: extra | ||
1110 | 263 | Depends: ceph (= ${binary:Version}), ${misc:Depends} | ||
1111 | 264 | Description: debugging symbols for ceph | ||
1112 | 265 | Ceph is a distributed storage and network file system designed to provide | ||
1113 | 266 | excellent performance, reliability, and scalability. | ||
1114 | 267 | . | ||
1115 | 268 | This package contains the debugging symbols for ceph. | ||
1116 | 269 | |||
1117 | 270 | Package: ceph-fuse | ||
1118 | 271 | Architecture: any | ||
1119 | 272 | Depends: ${shlibs:Depends}, ${misc:Depends}, libfuse2 | ||
1120 | 273 | Recommends: fuse-utils | ||
1121 | 274 | Suggests: ceph | ||
1122 | 275 | Description: FUSE-based client for the Ceph distributed file system | ||
1123 | 276 | Ceph is a distributed network file system designed to provide | ||
1124 | 277 | excellent performance, reliability, and scalability. This is a | ||
1125 | 278 | FUSE-based client that allows you to mount a Ceph file system without | ||
1126 | 279 | root privileges. | ||
1127 | 280 | . | ||
1128 | 281 | Because the FUSE-based client has certain inherent performance | ||
1129 | 282 | limitations, it is recommended that the native Linux kernel client | ||
1130 | 283 | be used if possible. If it is not practical to load a kernel module | ||
1131 | 284 | (insufficient privileges, older kernel, etc.), then the FUSE client will | ||
1132 | 285 | do. | ||
1133 | 286 | |||
1134 | 287 | Package: ceph-fuse-dbg | ||
1135 | 288 | Architecture: any | ||
1136 | 289 | Section: debug | ||
1137 | 290 | Priority: extra | ||
1138 | 291 | Depends: ceph-fuse (= ${binary:Version}), ${misc:Depends} | ||
1139 | 292 | Description: debugging symbols for ceph-fuse | ||
1140 | 293 | Ceph is a distributed network file system designed to provide | ||
1141 | 294 | excellent performance, reliability, and scalability. This is a | ||
1142 | 295 | FUSE-based client that allows you to mount a Ceph file system without | ||
1143 | 296 | root privileges. | ||
1144 | 297 | . | ||
1145 | 298 | This package contains the debugging symbols for ceph-fuse. | ||
1146 | 299 | |||
1147 | 300 | Package: libcrush1 | ||
1148 | 301 | Conflicts: libcrush | ||
1149 | 302 | Replaces: libcrush | ||
1150 | 303 | Architecture: any | ||
1151 | 304 | Depends: ${shlibs:Depends}, ${misc:Depends} | ||
1152 | 305 | Description: CRUSH placement algorithm | ||
1153 | 306 | CRUSH is a pseudo-random hash-like algorithm for mapping inputs to | ||
1154 | 307 | a changing hierarchy of devices without a centralized directory. It was | ||
1155 | 308 | originally designed for mapping data objects to storage servers, although it | ||
1156 | 309 | may be useful in other domains. Because large systems are inherently | ||
1157 | 310 | dynamic, CRUSH is designed to facilitate the addition and removal of devices | ||
1158 | 311 | while minimizing unnecessary object movement. The algorithm accommodates a | ||
1159 | 312 | wide variety of data replication and reliability mechanisms and distributes | ||
1160 | 313 | data in terms of user-defined policies that enforce separation of replicas | ||
1161 | 314 | across failure domains. | ||
1162 | 315 | |||
1163 | 316 | Package: libcrush1-dbg | ||
1164 | 317 | Architecture: any | ||
1165 | 318 | Section: debug | ||
1166 | 319 | Priority: extra | ||
1167 | 320 | Depends: libcrush1 (= ${binary:Version}), ${misc:Depends} | ||
1168 | 321 | Description: debugging symbols for libcrush1 | ||
1169 | 322 | CRUSH is a pseudo-random hash-like algorithm for mapping inputs to | ||
1170 | 323 | a changing hierarchy of devices without a centralized directory. It was | ||
1171 | 324 | originally designed for mapping data objects to storage servesr, although it | ||
1172 | 325 | may be useful in other domains. Because large systems are inherently | ||
1173 | 326 | dynamic, CRUSH is designed to facilitate the addition and removal of devices | ||
1174 | 327 | while minimizing unnecessary object movement. The algorithm accommodates a | ||
1175 | 328 | wide variety of data replication and reliability mechanisms and distributes | ||
1176 | 329 | data in terms of user-defined policies that enforce separation of replicas | ||
1177 | 330 | across failure domains. | ||
1178 | 331 | . | ||
1179 | 332 | This package contains debugging symbols for libcrush. | ||
1180 | 333 | |||
1181 | 334 | Package: libcrush1-dev | ||
1182 | 335 | Architecture: any | ||
1183 | 336 | Section: libdevel | ||
1184 | 337 | Depends: ${shlibs:Depends}, ${misc:Depends}, libcrush1 (= ${binary:Version}) | ||
1185 | 338 | Description: CRUSH mapping algorithm (development files) | ||
1186 | 339 | CRUSH is a pseudo-random hash-like algorithm for mapping inputs to | ||
1187 | 340 | a changing hierarchy of devices without a centralized directory. It was | ||
1188 | 341 | originally designed for mapping data objects to storage servesr, although it | ||
1189 | 342 | may be useful in other domains. Because large systems are inherently | ||
1190 | 343 | dynamic, CRUSH is designed to facilitate the addition and removal of devices | ||
1191 | 344 | while minimizing unnecessary object movement. The algorithm accommodates a | ||
1192 | 345 | wide variety of data replication and reliability mechanisms and distributes | ||
1193 | 346 | data in terms of user-defined policies that enforce separation of replicas | ||
1194 | 347 | across failure domains. | ||
1195 | 348 | . | ||
1196 | 349 | This package contains development files needed for building applications that | ||
1197 | 350 | link against libcrush. | ||
1198 | 351 | |||
1199 | 352 | Package: librados1 | ||
1200 | 353 | Conflicts: librados | ||
1201 | 354 | Replaces: librados | ||
1202 | 355 | Architecture: any | ||
1203 | 356 | Depends: ${shlibs:Depends}, ${misc:Depends}, libcrush1 | ||
1204 | 357 | Description: RADOS distributed object store client library | ||
1205 | 358 | RADOS is a reliable, autonomic distributed object storage cluster | ||
1206 | 359 | developed as part of the Ceph distributed storage system. This is a | ||
1207 | 360 | shared library allowing applications to access the distributed object | ||
1208 | 361 | store using a simple file-like interface. | ||
1209 | 362 | |||
1210 | 363 | Package: librados1-dbg | ||
1211 | 364 | Architecture: any | ||
1212 | 365 | Section: debug | ||
1213 | 366 | Priority: extra | ||
1214 | 367 | Depends: librados1 (= ${binary:Version}), ${misc:Depends} | ||
1215 | 368 | Description: debugging symbols for librados1 | ||
1216 | 369 | RADOS is a reliable, autonomic distributed object storage cluster | ||
1217 | 370 | developed as part of the Ceph distributed storage system. This is a | ||
1218 | 371 | shared library allowing applications to access the distributed object | ||
1219 | 372 | store using a simple file-like interface. | ||
1220 | 373 | . | ||
1221 | 374 | This package contains debugging symbols for librados1. | ||
1222 | 375 | |||
1223 | 376 | Package: librados1-dev | ||
1224 | 377 | Architecture: any | ||
1225 | 378 | Section: libdevel | ||
1226 | 379 | Depends: ${shlibs:Depends}, ${misc:Depends}, librados1 (= ${binary:Version}) | ||
1227 | 380 | Description: RADOS distributed object store client library (development files) | ||
1228 | 381 | RADOS is a reliable, autonomic distributed object storage cluster | ||
1229 | 382 | developed as part of the Ceph distributed storage system. This is a | ||
1230 | 383 | shared library allowing applications to access the distributed object | ||
1231 | 384 | store using a simple file-like interface. | ||
1232 | 385 | . | ||
1233 | 386 | This package contains development files needed for building applications that | ||
1234 | 387 | link against librados. | ||
1235 | 388 | |||
1236 | 389 | Package: libceph1 | ||
1237 | 390 | Conflicts: libceph | ||
1238 | 391 | Replaces: libceph | ||
1239 | 392 | Architecture: any | ||
1240 | 393 | Depends: ${shlibs:Depends}, ${misc:Depends}, libcrush1 | ||
1241 | 394 | Description: Ceph distributed file system client library | ||
1242 | 395 | Ceph is a distributed network file system designed to provide | ||
1243 | 396 | excellent performance, reliability, and scalability. This is a | ||
1244 | 397 | shared library allowing applications to access a Ceph distributed | ||
1245 | 398 | file system via a POSIX-like interface. | ||
1246 | 399 | |||
1247 | 400 | Package: libceph1-dbg | ||
1248 | 401 | Architecture: any | ||
1249 | 402 | Section: debug | ||
1250 | 403 | Priority: extra | ||
1251 | 404 | Depends: libceph1 (= ${binary:Version}), ${misc:Depends} | ||
1252 | 405 | Description: debugging symbols for libceph1 | ||
1253 | 406 | Ceph is a distributed network file system designed to provide | ||
1254 | 407 | excellent performance, reliability, and scalability. This is a | ||
1255 | 408 | shared library allowing applications to access a Ceph distributed | ||
1256 | 409 | file system via a POSIX-like interface. | ||
1257 | 410 | . | ||
1258 | 411 | This package contains debugging symbols for libceph1. | ||
1259 | 412 | |||
1260 | 413 | Package: libceph1-dev | ||
1261 | 414 | Architecture: any | ||
1262 | 415 | Section: libdevel | ||
1263 | 416 | Depends: ${shlibs:Depends}, ${misc:Depends}, libceph1 (= ${binary:Version}) | ||
1264 | 417 | Description: Ceph distributed file system client library (development files) | ||
1265 | 418 | Ceph is a distributed network file system designed to provide | ||
1266 | 419 | excellent performance, reliability, and scalability. This is a | ||
1267 | 420 | shared library allowing applications to access a Ceph distributed | ||
1268 | 421 | file system via a POSIX-like interface. | ||
1269 | 422 | . | ||
1270 | 423 | This package contains development files needed for building applications that | ||
1271 | 424 | link against libceph. | ||
1272 | 425 | |||
1273 | 426 | Package: radosgw | ||
1274 | 427 | Architecture: any | ||
1275 | 428 | Depends: ${shlibs:Depends}, ${misc:Depends}, libexpat1, librados1 | ||
1276 | 429 | Description: REST gateway for RADOS distributed object store | ||
1277 | 430 | RADOS is a distributed object store used by the Ceph distributed | ||
1278 | 431 | storage system. This package provides a REST gateway to the | ||
1279 | 432 | object store that aims to implement a superset of Amazon's S3 | ||
1280 | 433 | service. | ||
1281 | 434 | . | ||
1282 | 435 | This package contains the proxy daemon and related tools only. | ||
1283 | 436 | |||
1284 | 437 | Package: radosgw-dbg | ||
1285 | 438 | Architecture: any | ||
1286 | 439 | Section: debug | ||
1287 | 440 | Priority: extra | ||
1288 | 441 | Depends: radosgw (= ${binary:Version}), ${misc:Depends} | ||
1289 | 442 | Description: debugging symbols for radosgw | ||
1290 | 443 | RADOS is a distributed object store used by the Ceph distributed | ||
1291 | 444 | storage system. This package provides a REST gateway to the | ||
1292 | 445 | object store that aims to implement a superset of Amazon's S3 | ||
1293 | 446 | service. | ||
1294 | 447 | . | ||
1295 | 448 | This package contains debugging symbols for radosgw. | ||
1296 | 449 | >>>>>>> MERGE-SOURCE | ||
1297 | 237 | 450 | ||
1298 | === modified file 'debian/copyright' | |||
1299 | --- debian/copyright 2011-02-25 15:17:26 +0000 | |||
1300 | +++ debian/copyright 2011-03-28 07:08:46 +0000 | |||
1301 | @@ -1,3 +1,4 @@ | |||
1302 | 1 | <<<<<<< TREE | ||
1303 | 1 | Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=135 | 2 | Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=135 |
1304 | 2 | Name: ceph | 3 | Name: ceph |
1305 | 3 | Maintainer: Sage Weil <sage@newdream.net> | 4 | Maintainer: Sage Weil <sage@newdream.net> |
1306 | @@ -74,3 +75,71 @@ | |||
1307 | 74 | Copyright (C) 2004-2009 by Sage Weil <sage@newdream.net> | 75 | Copyright (C) 2004-2009 by Sage Weil <sage@newdream.net> |
1308 | 75 | Copyright (C) 2010 Canonical, Ltd. | 76 | Copyright (C) 2010 Canonical, Ltd. |
1309 | 76 | Licensed under LGPL-2.1 | 77 | Licensed under LGPL-2.1 |
1310 | 78 | ======= | ||
1311 | 79 | Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=135 | ||
1312 | 80 | Name: ceph | ||
1313 | 81 | Maintainer: Sage Weil <sage@newdream.net> | ||
1314 | 82 | Source: http://ceph.newdream.net/ | ||
1315 | 83 | |||
1316 | 84 | Files: * | ||
1317 | 85 | Copyright: (c) 2004-2010 by Sage Weil <sage@newdream.net> | ||
1318 | 86 | License: LGPL2.1 (see /usr/share/common-licenses/LGPL-2.1) | ||
1319 | 87 | |||
1320 | 88 | Files: src/client/fuse.cc | ||
1321 | 89 | Copyright: | ||
1322 | 90 | Copyright (C) 2001-2005 Miklos Szeredi <miklos@szeredi.hu> | ||
1323 | 91 | Copyright (C) 2004-2006 Sage Weil <sage@newdream.net> | ||
1324 | 92 | License: GPL | ||
1325 | 93 | |||
1326 | 94 | Files: src/osbdb/OSBDB.h | ||
1327 | 95 | Copyright: Copyright (C) 2007 Casey Marshall <csm@soe.ucsc.edu> | ||
1328 | 96 | License: LGPL2.1 | ||
1329 | 97 | |||
1330 | 98 | Files: src/mount/canonicalize.c | ||
1331 | 99 | Copyright: Copyright (C) 1993 Rick Sladkey <jrs@world.std.com> | ||
1332 | 100 | License: LGPL2 or later | ||
1333 | 101 | |||
1334 | 102 | Files: src/os/btrfs_ioctl.h | ||
1335 | 103 | Copyright: Copyright (C) 2007 Oracle. All rights reserved. | ||
1336 | 104 | License: GPL2 | ||
1337 | 105 | |||
1338 | 106 | Files: src/include/ceph_hash.cc | ||
1339 | 107 | Copyright: None | ||
1340 | 108 | License: Public domain | ||
1341 | 109 | |||
1342 | 110 | Files: src/common/sctp_crc32.c: | ||
1343 | 111 | Copyright: | ||
1344 | 112 | Copyright (c) 2001-2007, by Cisco Systems, Inc. All rights reserved. | ||
1345 | 113 | Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved | ||
1346 | 114 | License: | ||
1347 | 115 | Redistribution and use in source and binary forms, with or without | ||
1348 | 116 | modification, are permitted provided that the following conditions are met: | ||
1349 | 117 | |||
1350 | 118 | a) Redistributions of source code must retain the above copyright notice, | ||
1351 | 119 | this list of conditions and the following disclaimer. | ||
1352 | 120 | |||
1353 | 121 | b) Redistributions in binary form must reproduce the above copyright | ||
1354 | 122 | notice, this list of conditions and the following disclaimer in | ||
1355 | 123 | the documentation and/or other materials provided with the distribution. | ||
1356 | 124 | |||
1357 | 125 | c) Neither the name of Cisco Systems, Inc. nor the names of its | ||
1358 | 126 | contributors may be used to endorse or promote products derived | ||
1359 | 127 | from this software without specific prior written permission. | ||
1360 | 128 | |||
1361 | 129 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
1362 | 130 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, | ||
1363 | 131 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
1364 | 132 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | ||
1365 | 133 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
1366 | 134 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
1367 | 135 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
1368 | 136 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
1369 | 137 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
1370 | 138 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF | ||
1371 | 139 | THE POSSIBILITY OF SUCH DAMAGE. | ||
1372 | 140 | |||
1373 | 141 | Packaging: | ||
1374 | 142 | Copyright (C) 2004-2009 by Sage Weil <sage@newdream.net> | ||
1375 | 143 | Copyright (C) 2010 Canonical, Ltd. | ||
1376 | 144 | Licensed under LGPL-2.1 | ||
1377 | 145 | >>>>>>> MERGE-SOURCE | ||
1378 | 77 | 146 | ||
1379 | === modified file 'debian/libceph1-dev.install' | |||
1380 | --- debian/libceph1-dev.install 2011-02-25 15:17:26 +0000 | |||
1381 | +++ debian/libceph1-dev.install 2011-03-28 07:08:46 +0000 | |||
1382 | @@ -1,4 +1,10 @@ | |||
1383 | 1 | <<<<<<< TREE | ||
1384 | 1 | usr/lib/libceph.so | 2 | usr/lib/libceph.so |
1385 | 2 | usr/lib/libceph.a | 3 | usr/lib/libceph.a |
1386 | 3 | usr/lib/libceph.la | 4 | usr/lib/libceph.la |
1387 | 4 | usr/include/ceph/libceph.h | 5 | usr/include/ceph/libceph.h |
1388 | 6 | ======= | ||
1389 | 7 | /usr/lib/libceph.so | ||
1390 | 8 | /usr/lib/libceph.a | ||
1391 | 9 | /usr/include/ceph/libceph.h | ||
1392 | 10 | >>>>>>> MERGE-SOURCE | ||
1393 | 5 | 11 | ||
1394 | === modified file 'debian/libceph1.install' | |||
1395 | --- debian/libceph1.install 2011-02-25 15:17:26 +0000 | |||
1396 | +++ debian/libceph1.install 2011-03-28 07:08:46 +0000 | |||
1397 | @@ -1,2 +1,7 @@ | |||
1398 | 1 | <<<<<<< TREE | ||
1399 | 1 | usr/lib/libceph.so.* | 2 | usr/lib/libceph.so.* |
1400 | 2 | 3 | ||
1401 | 4 | ======= | ||
1402 | 5 | /usr/lib/libceph.so.* | ||
1403 | 6 | |||
1404 | 7 | >>>>>>> MERGE-SOURCE | ||
1405 | 3 | 8 | ||
1406 | === modified file 'debian/libcrush1-dev.install' | |||
1407 | --- debian/libcrush1-dev.install 2011-02-25 15:17:26 +0000 | |||
1408 | +++ debian/libcrush1-dev.install 2011-03-28 07:08:46 +0000 | |||
1409 | @@ -1,3 +1,4 @@ | |||
1410 | 1 | <<<<<<< TREE | ||
1411 | 1 | usr/lib/libcrush.so | 2 | usr/lib/libcrush.so |
1412 | 2 | usr/lib/libcrush.a | 3 | usr/lib/libcrush.a |
1413 | 3 | usr/lib/libcrush.la | 4 | usr/lib/libcrush.la |
1414 | @@ -5,3 +6,11 @@ | |||
1415 | 5 | usr/include/crush/types.h | 6 | usr/include/crush/types.h |
1416 | 6 | usr/include/crush/mapper.h | 7 | usr/include/crush/mapper.h |
1417 | 7 | usr/include/crush/crush.h | 8 | usr/include/crush/crush.h |
1418 | 9 | ======= | ||
1419 | 10 | /usr/lib/libcrush.so | ||
1420 | 11 | /usr/lib/libcrush.a | ||
1421 | 12 | /usr/include/crush/hash.h | ||
1422 | 13 | /usr/include/crush/types.h | ||
1423 | 14 | /usr/include/crush/mapper.h | ||
1424 | 15 | /usr/include/crush/crush.h | ||
1425 | 16 | >>>>>>> MERGE-SOURCE | ||
1426 | 8 | 17 | ||
1427 | === modified file 'debian/libcrush1.install' | |||
1428 | --- debian/libcrush1.install 2011-02-25 15:17:26 +0000 | |||
1429 | +++ debian/libcrush1.install 2011-03-28 07:08:46 +0000 | |||
1430 | @@ -1,2 +1,7 @@ | |||
1431 | 1 | <<<<<<< TREE | ||
1432 | 1 | usr/lib/libcrush.so.* | 2 | usr/lib/libcrush.so.* |
1433 | 2 | 3 | ||
1434 | 4 | ======= | ||
1435 | 5 | /usr/lib/libcrush.so.* | ||
1436 | 6 | |||
1437 | 7 | >>>>>>> MERGE-SOURCE | ||
1438 | 3 | 8 | ||
1439 | === modified file 'debian/librados1-dev.install' | |||
1440 | --- debian/librados1-dev.install 2011-02-25 15:17:26 +0000 | |||
1441 | +++ debian/librados1-dev.install 2011-03-28 07:08:46 +0000 | |||
1442 | @@ -1,3 +1,4 @@ | |||
1443 | 1 | <<<<<<< TREE | ||
1444 | 1 | usr/lib/librados.so | 2 | usr/lib/librados.so |
1445 | 2 | usr/lib/librados.a | 3 | usr/lib/librados.a |
1446 | 3 | usr/lib/librados.la | 4 | usr/lib/librados.la |
1447 | @@ -9,3 +10,15 @@ | |||
1448 | 9 | usr/include/rados/crc32c.h | 10 | usr/include/rados/crc32c.h |
1449 | 10 | usr/include/rados/Spinlock.h | 11 | usr/include/rados/Spinlock.h |
1450 | 11 | usr/include/rados/assert.h | 12 | usr/include/rados/assert.h |
1451 | 13 | ======= | ||
1452 | 14 | /usr/lib/librados.so | ||
1453 | 15 | /usr/lib/librados.a | ||
1454 | 16 | /usr/include/rados/librados.h | ||
1455 | 17 | /usr/include/rados/librados.hpp | ||
1456 | 18 | /usr/include/rados/buffer.h | ||
1457 | 19 | /usr/include/rados/atomic.h | ||
1458 | 20 | /usr/include/rados/page.h | ||
1459 | 21 | /usr/include/rados/crc32c.h | ||
1460 | 22 | /usr/include/rados/Spinlock.h | ||
1461 | 23 | /usr/include/rados/assert.h | ||
1462 | 24 | >>>>>>> MERGE-SOURCE | ||
1463 | 12 | 25 | ||
1464 | === modified file 'debian/librados1.install' | |||
1465 | --- debian/librados1.install 2011-02-25 15:17:26 +0000 | |||
1466 | +++ debian/librados1.install 2011-03-28 07:08:46 +0000 | |||
1467 | @@ -1,2 +1,7 @@ | |||
1468 | 1 | <<<<<<< TREE | ||
1469 | 1 | usr/lib/librados.so.* | 2 | usr/lib/librados.so.* |
1470 | 2 | 3 | ||
1471 | 4 | ======= | ||
1472 | 5 | /usr/lib/librados.so.* | ||
1473 | 6 | |||
1474 | 7 | >>>>>>> MERGE-SOURCE | ||
1475 | 3 | 8 | ||
1476 | === added file 'debian/move_dbg_files.sh' | |||
1477 | --- debian/move_dbg_files.sh 1970-01-01 00:00:00 +0000 | |||
1478 | +++ debian/move_dbg_files.sh 2011-03-28 07:08:46 +0000 | |||
1479 | @@ -0,0 +1,8 @@ | |||
1480 | 1 | #!/bin/sh | ||
1481 | 2 | |||
1482 | 3 | for f in ceph ceph-fuse libcrush1 librados1 libceph1 radosgw | ||
1483 | 4 | do | ||
1484 | 5 | echo moving $f unstripped binaries into $f-dbg | ||
1485 | 6 | mkdir -p debian/$f-dbg/usr/lib | ||
1486 | 7 | mv debian/$f/usr/lib/debug debian/$f-dbg/usr/lib | ||
1487 | 8 | done | ||
1488 | 0 | 9 | ||
1489 | === added directory 'debian/patches' | |||
1490 | === modified file 'debian/rules' | |||
1491 | --- debian/rules 2011-02-25 15:17:26 +0000 | |||
1492 | +++ debian/rules 2011-03-28 07:08:46 +0000 | |||
1493 | @@ -1,3 +1,4 @@ | |||
1494 | 1 | <<<<<<< TREE | ||
1495 | 1 | #!/usr/bin/make -f | 2 | #!/usr/bin/make -f |
1496 | 2 | # -*- makefile -*- | 3 | # -*- makefile -*- |
1497 | 3 | export DH_VERBOSE=1 | 4 | export DH_VERBOSE=1 |
1498 | @@ -86,3 +87,70 @@ | |||
1499 | 86 | 87 | ||
1500 | 87 | binary: binary-indep binary-arch | 88 | binary: binary-indep binary-arch |
1501 | 88 | .PHONY: build clean binary-indep binary-arch binary install configure | 89 | .PHONY: build clean binary-indep binary-arch binary install configure |
1502 | 90 | ======= | ||
1503 | 91 | #!/usr/bin/make -f | ||
1504 | 92 | # -*- makefile -*- | ||
1505 | 93 | export DH_VERBOSE=1 | ||
1506 | 94 | configure: configure-stamp | ||
1507 | 95 | configure-stamp: | ||
1508 | 96 | dh_testdir | ||
1509 | 97 | touch configure-stamp | ||
1510 | 98 | build: build-stamp | ||
1511 | 99 | build-stamp: configure-stamp | ||
1512 | 100 | dh_testdir | ||
1513 | 101 | |||
1514 | 102 | ./autogen.sh | ||
1515 | 103 | ./configure --prefix=/usr | ||
1516 | 104 | $(MAKE) | ||
1517 | 105 | cp src/init-ceph debian/ceph.init | ||
1518 | 106 | |||
1519 | 107 | touch $@ | ||
1520 | 108 | clean: | ||
1521 | 109 | dh_testdir | ||
1522 | 110 | dh_testroot | ||
1523 | 111 | rm -f build-stamp configure-stamp | ||
1524 | 112 | |||
1525 | 113 | test ! -f Makefile || $(MAKE) clean | ||
1526 | 114 | |||
1527 | 115 | dh_clean | ||
1528 | 116 | install: build | ||
1529 | 117 | dh_testdir | ||
1530 | 118 | dh_testroot | ||
1531 | 119 | dh_clean -k | ||
1532 | 120 | dh_installdirs | ||
1533 | 121 | |||
1534 | 122 | $(MAKE) DESTDIR=$(CURDIR) install | ||
1535 | 123 | |||
1536 | 124 | |||
1537 | 125 | # Add here commands to install the package into debian/testpack. | ||
1538 | 126 | # Build architecture-independent files here. | ||
1539 | 127 | binary-indep: build install | ||
1540 | 128 | # We have nothing to do by default. | ||
1541 | 129 | # Build architecture-dependent files here. | ||
1542 | 130 | binary-arch: build install | ||
1543 | 131 | dh_testdir | ||
1544 | 132 | dh_testroot | ||
1545 | 133 | dh_installchangelogs | ||
1546 | 134 | dh_installdocs | ||
1547 | 135 | dh_installexamples | ||
1548 | 136 | dh_install | ||
1549 | 137 | dh_installlogrotate | ||
1550 | 138 | dh_installinit | ||
1551 | 139 | dh_installman | ||
1552 | 140 | dh_lintian | ||
1553 | 141 | dh_link | ||
1554 | 142 | |||
1555 | 143 | dh_strip -k --exclude=libcls_ | ||
1556 | 144 | chmod +x debian/move_dbg_files.sh && debian/move_dbg_files.sh | ||
1557 | 145 | |||
1558 | 146 | dh_compress | ||
1559 | 147 | dh_fixperms | ||
1560 | 148 | dh_makeshlibs -n # we do the postinst/postrm scripts manually | ||
1561 | 149 | dh_installdeb | ||
1562 | 150 | dh_shlibdeps | ||
1563 | 151 | dh_gencontrol | ||
1564 | 152 | dh_md5sums | ||
1565 | 153 | dh_builddeb | ||
1566 | 154 | binary: binary-indep binary-arch | ||
1567 | 155 | .PHONY: build clean binary-indep binary-arch binary install configure | ||
1568 | 156 | >>>>>>> MERGE-SOURCE | ||
1569 | 89 | 157 | ||
1570 | === modified file 'debian/source/format' | |||
1571 | --- debian/source/format 2011-02-25 15:17:26 +0000 | |||
1572 | +++ debian/source/format 2011-03-28 07:08:46 +0000 | |||
1573 | @@ -1,1 +1,5 @@ | |||
1574 | 1 | <<<<<<< TREE | ||
1575 | 1 | 1.0 | 2 | 1.0 |
1576 | 3 | ======= | ||
1577 | 4 | 3.0 (quilt) | ||
1578 | 5 | >>>>>>> MERGE-SOURCE | ||
1579 | 2 | 6 | ||
1580 | === modified file 'src/.git_version' | |||
1581 | --- src/.git_version 2011-02-25 15:17:26 +0000 | |||
1582 | +++ src/.git_version 2011-03-28 07:08:46 +0000 | |||
1583 | @@ -1,1 +1,5 @@ | |||
1584 | 1 | <<<<<<< TREE | ||
1585 | 1 | 2cd2c56dd07c4862da6a5a8b4c2febafacc37d22 | 2 | 2cd2c56dd07c4862da6a5a8b4c2febafacc37d22 |
1586 | 3 | ======= | ||
1587 | 4 | f7572de5cb87eb7157217be4975ae66d90831bb7 | ||
1588 | 5 | >>>>>>> MERGE-SOURCE | ||
1589 | 2 | 6 | ||
1590 | === modified file 'src/Makefile.am' | |||
1591 | === modified file 'src/Makefile.in' | |||
1592 | === modified file 'src/client/Client.cc' | |||
1593 | --- src/client/Client.cc 2011-02-25 15:17:26 +0000 | |||
1594 | +++ src/client/Client.cc 2011-03-28 07:08:46 +0000 | |||
1595 | @@ -375,6 +375,7 @@ | |||
1596 | 375 | } | 375 | } |
1597 | 376 | if (truncate_seq >= in->truncate_seq && | 376 | if (truncate_seq >= in->truncate_seq && |
1598 | 377 | in->truncate_size != truncate_size) { | 377 | in->truncate_size != truncate_size) { |
1599 | 378 | <<<<<<< TREE | ||
1600 | 378 | if (in->is_file()) { | 379 | if (in->is_file()) { |
1601 | 379 | dout(10) << "truncate_size " << in->truncate_size << " -> " | 380 | dout(10) << "truncate_size " << in->truncate_size << " -> " |
1602 | 380 | << truncate_size << dendl; | 381 | << truncate_size << dendl; |
1603 | @@ -390,6 +391,23 @@ | |||
1604 | 390 | } else { | 391 | } else { |
1605 | 391 | dout(0) << "Hmmm, truncate_seq && truncate_size changed on non-file inode!" << dendl; | 392 | dout(0) << "Hmmm, truncate_seq && truncate_size changed on non-file inode!" << dendl; |
1606 | 392 | } | 393 | } |
1607 | 394 | ======= | ||
1608 | 395 | if (in->is_file()) { | ||
1609 | 396 | dout(10) << "truncate_size " << in->truncate_size << " -> " | ||
1610 | 397 | << truncate_size << dendl; | ||
1611 | 398 | in->truncate_size = truncate_size; | ||
1612 | 399 | in->oset.truncate_size = truncate_size; | ||
1613 | 400 | if (g_conf.client_oc && prior_size) { //do actual truncation | ||
1614 | 401 | vector<ObjectExtent> ls; | ||
1615 | 402 | filer->file_to_extents(in->ino, &in->layout, | ||
1616 | 403 | truncate_size, prior_size - truncate_size, | ||
1617 | 404 | ls); | ||
1618 | 405 | objectcacher->truncate_set(&in->oset, ls); | ||
1619 | 406 | } | ||
1620 | 407 | } else { | ||
1621 | 408 | dout(0) << "Hmmm, truncate_seq && truncate_size changed on non-file inode!" << dendl; | ||
1622 | 409 | } | ||
1623 | 410 | >>>>>>> MERGE-SOURCE | ||
1624 | 393 | } | 411 | } |
1625 | 394 | 412 | ||
1626 | 395 | // be careful with size, mtime, atime | 413 | // be careful with size, mtime, atime |
1627 | 396 | 414 | ||
1628 | === modified file 'src/common/signal.cc' | |||
1629 | --- src/common/signal.cc 2011-02-25 15:17:26 +0000 | |||
1630 | +++ src/common/signal.cc 2011-03-28 07:08:46 +0000 | |||
1631 | @@ -1,3 +1,4 @@ | |||
1632 | 1 | <<<<<<< TREE | ||
1633 | 1 | // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- | 2 | // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- |
1634 | 2 | // vim: ts=8 sw=2 smarttab | 3 | // vim: ts=8 sw=2 smarttab |
1635 | 3 | /* | 4 | /* |
1636 | @@ -160,3 +161,165 @@ | |||
1637 | 160 | if (old_sigset) | 161 | if (old_sigset) |
1638 | 161 | sigdelset(old_sigset, SIGKILL); | 162 | sigdelset(old_sigset, SIGKILL); |
1639 | 162 | } | 163 | } |
1640 | 164 | ======= | ||
1641 | 165 | // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- | ||
1642 | 166 | // vim: ts=8 sw=2 smarttab | ||
1643 | 167 | /* | ||
1644 | 168 | * Ceph - scalable distributed file system | ||
1645 | 169 | * | ||
1646 | 170 | * Copyright (C) 2011 New Dream Network | ||
1647 | 171 | * | ||
1648 | 172 | * This is free software; you can redistribute it and/or | ||
1649 | 173 | * modify it under the terms of the GNU Lesser General Public | ||
1650 | 174 | * License version 2.1, as published by the Free Software | ||
1651 | 175 | * Foundation. See file COPYING. | ||
1652 | 176 | * | ||
1653 | 177 | */ | ||
1654 | 178 | |||
1655 | 179 | #include "common/BackTrace.h" | ||
1656 | 180 | #include "common/Logger.h" | ||
1657 | 181 | #include "common/debug.h" | ||
1658 | 182 | #include "config.h" | ||
1659 | 183 | |||
1660 | 184 | #include <signal.h> | ||
1661 | 185 | #include <sstream> | ||
1662 | 186 | #include <stdlib.h> | ||
1663 | 187 | #include <sys/stat.h> | ||
1664 | 188 | #include <sys/types.h> | ||
1665 | 189 | |||
1666 | 190 | #define dout_prefix *_dout | ||
1667 | 191 | #define derr dout(0) | ||
1668 | 192 | |||
1669 | 193 | typedef void (*signal_handler_t)(int); | ||
1670 | 194 | |||
1671 | 195 | static void install_sighandler(int signum, signal_handler_t handler, int flags) | ||
1672 | 196 | { | ||
1673 | 197 | int ret; | ||
1674 | 198 | struct sigaction oldact; | ||
1675 | 199 | struct sigaction act; | ||
1676 | 200 | memset(&act, 0, sizeof(act)); | ||
1677 | 201 | |||
1678 | 202 | act.sa_handler = handler; | ||
1679 | 203 | sigemptyset(&act.sa_mask); | ||
1680 | 204 | act.sa_flags = flags; | ||
1681 | 205 | |||
1682 | 206 | ret = sigaction(signum, &act, &oldact); | ||
1683 | 207 | if (ret != 0) { | ||
1684 | 208 | *_dout << "install_sighandler: sigaction returned " << ret << " when " | ||
1685 | 209 | << "trying to install a signal handler for " | ||
1686 | 210 | << sys_siglist[signum] << "\n"; | ||
1687 | 211 | exit(1); | ||
1688 | 212 | } | ||
1689 | 213 | } | ||
1690 | 214 | |||
1691 | 215 | static void sighup_handler(int signum) | ||
1692 | 216 | { | ||
1693 | 217 | // All this does is set a few bits telling us to re-open our logfiles and | ||
1694 | 218 | // restart our central logging service. | ||
1695 | 219 | _dout_need_open = true; | ||
1696 | 220 | logger_reopen_all(); | ||
1697 | 221 | } | ||
1698 | 222 | |||
1699 | 223 | static void handle_fatal_signal(int signum) | ||
1700 | 224 | { | ||
1701 | 225 | // This code may itself trigger a SIGSEGV if the heap is corrupt. In that | ||
1702 | 226 | // case, SA_RESETHAND specifies that the default signal handler-- | ||
1703 | 227 | // presumably dump core-- will handle it. | ||
1704 | 228 | *_dout << "*** Caught signal (" << sys_siglist[signum] << ") ***" | ||
1705 | 229 | << std::endl; | ||
1706 | 230 | *_dout << "in thread " << std::hex << pthread_self() << std::endl; | ||
1707 | 231 | BackTrace bt(0); | ||
1708 | 232 | bt.print(*_dout); | ||
1709 | 233 | _dout->flush(); | ||
1710 | 234 | |||
1711 | 235 | // Use default handler to dump core | ||
1712 | 236 | int ret = raise(signum); | ||
1713 | 237 | |||
1714 | 238 | // Normally, we won't get here. If we do, something is very weird. | ||
1715 | 239 | if (ret) { | ||
1716 | 240 | *_dout << "handle_fatal_signal: failed to re-raise signal " << signum | ||
1717 | 241 | << std::endl; | ||
1718 | 242 | } | ||
1719 | 243 | else { | ||
1720 | 244 | *_dout << "handle_fatal_signal: default handler for signal " << signum | ||
1721 | 245 | << " didn't terminate the process?" << std::endl; | ||
1722 | 246 | } | ||
1723 | 247 | exit(1); | ||
1724 | 248 | } | ||
1725 | 249 | |||
1726 | 250 | #include <syslog.h> | ||
1727 | 251 | |||
1728 | 252 | std::string signal_mask_to_str() | ||
1729 | 253 | { | ||
1730 | 254 | sigset_t old_sigset; | ||
1731 | 255 | if (pthread_sigmask(SIG_SETMASK, NULL, &old_sigset)) { | ||
1732 | 256 | return "(pthread_signmask failed)"; | ||
1733 | 257 | } | ||
1734 | 258 | |||
1735 | 259 | ostringstream oss; | ||
1736 | 260 | oss << "show_signal_mask: { "; | ||
1737 | 261 | string sep(""); | ||
1738 | 262 | for (int signum = 0; signum < NSIG; ++signum) { | ||
1739 | 263 | if (sigismember(&old_sigset, signum) == 1) { | ||
1740 | 264 | oss << sep << signum; | ||
1741 | 265 | sep = ", "; | ||
1742 | 266 | } | ||
1743 | 267 | } | ||
1744 | 268 | oss << " }"; | ||
1745 | 269 | return oss.str(); | ||
1746 | 270 | } | ||
1747 | 271 | |||
1748 | 272 | void install_standard_sighandlers(void) | ||
1749 | 273 | { | ||
1750 | 274 | install_sighandler(SIGHUP, sighup_handler, SA_RESTART); | ||
1751 | 275 | install_sighandler(SIGSEGV, handle_fatal_signal, SA_RESETHAND | SA_NODEFER); | ||
1752 | 276 | install_sighandler(SIGABRT, handle_fatal_signal, SA_RESETHAND | SA_NODEFER); | ||
1753 | 277 | install_sighandler(SIGBUS, handle_fatal_signal, SA_RESETHAND | SA_NODEFER); | ||
1754 | 278 | install_sighandler(SIGILL, handle_fatal_signal, SA_RESETHAND | SA_NODEFER); | ||
1755 | 279 | install_sighandler(SIGFPE, handle_fatal_signal, SA_RESETHAND | SA_NODEFER); | ||
1756 | 280 | install_sighandler(SIGXCPU, handle_fatal_signal, SA_RESETHAND | SA_NODEFER); | ||
1757 | 281 | install_sighandler(SIGXFSZ, handle_fatal_signal, SA_RESETHAND | SA_NODEFER); | ||
1758 | 282 | install_sighandler(SIGSYS, handle_fatal_signal, SA_RESETHAND | SA_NODEFER); | ||
1759 | 283 | } | ||
1760 | 284 | |||
1761 | 285 | void block_all_signals(sigset_t *old_sigset) | ||
1762 | 286 | { | ||
1763 | 287 | sigset_t sigset; | ||
1764 | 288 | sigfillset(&sigset); | ||
1765 | 289 | sigdelset(&sigset, SIGKILL); | ||
1766 | 290 | if (pthread_sigmask(SIG_BLOCK, &sigset, old_sigset)) { | ||
1767 | 291 | derr << "block_all_signals: sigprocmask failed" << dendl; | ||
1768 | 292 | if (old_sigset) | ||
1769 | 293 | sigaddset(old_sigset, SIGKILL); | ||
1770 | 294 | return; | ||
1771 | 295 | } | ||
1772 | 296 | if (old_sigset) | ||
1773 | 297 | sigdelset(old_sigset, SIGKILL); | ||
1774 | 298 | } | ||
1775 | 299 | |||
1776 | 300 | void restore_sigset(const sigset_t *old_sigset) | ||
1777 | 301 | { | ||
1778 | 302 | if (sigismember(old_sigset, SIGKILL) != 0) { | ||
1779 | 303 | derr << "restore_sigset: not restoring invalid old_sigset" << dendl; | ||
1780 | 304 | return; | ||
1781 | 305 | } | ||
1782 | 306 | if (pthread_sigmask(SIG_SETMASK, old_sigset, NULL)) { | ||
1783 | 307 | derr << "restore_sigset: sigprocmask failed" << dendl; | ||
1784 | 308 | } | ||
1785 | 309 | } | ||
1786 | 310 | |||
1787 | 311 | void unblock_all_signals(sigset_t *old_sigset) | ||
1788 | 312 | { | ||
1789 | 313 | sigset_t sigset; | ||
1790 | 314 | sigfillset(&sigset); | ||
1791 | 315 | sigdelset(&sigset, SIGKILL); | ||
1792 | 316 | if (pthread_sigmask(SIG_UNBLOCK, &sigset, old_sigset)) { | ||
1793 | 317 | derr << "unblock_all_signals: sigprocmask failed" << dendl; | ||
1794 | 318 | if (old_sigset) | ||
1795 | 319 | sigaddset(old_sigset, SIGKILL); | ||
1796 | 320 | return; | ||
1797 | 321 | } | ||
1798 | 322 | if (old_sigset) | ||
1799 | 323 | sigdelset(old_sigset, SIGKILL); | ||
1800 | 324 | } | ||
1801 | 325 | >>>>>>> MERGE-SOURCE | ||
1802 | 163 | 326 | ||
1803 | === modified file 'src/include/ceph_strings.cc' | |||
1804 | --- src/include/ceph_strings.cc 2011-02-25 15:17:26 +0000 | |||
1805 | +++ src/include/ceph_strings.cc 2011-03-28 07:08:46 +0000 | |||
1806 | @@ -54,10 +54,16 @@ | |||
1807 | 54 | case CEPH_OSD_OP_BALANCEREADS: return "balance-reads"; | 54 | case CEPH_OSD_OP_BALANCEREADS: return "balance-reads"; |
1808 | 55 | case CEPH_OSD_OP_UNBALANCEREADS: return "unbalance-reads"; | 55 | case CEPH_OSD_OP_UNBALANCEREADS: return "unbalance-reads"; |
1809 | 56 | case CEPH_OSD_OP_SCRUB: return "scrub"; | 56 | case CEPH_OSD_OP_SCRUB: return "scrub"; |
1810 | 57 | <<<<<<< TREE | ||
1811 | 57 | case CEPH_OSD_OP_SCRUB_RESERVE: return "scrub-reserve"; | 58 | case CEPH_OSD_OP_SCRUB_RESERVE: return "scrub-reserve"; |
1812 | 58 | case CEPH_OSD_OP_SCRUB_UNRESERVE: return "scrub-unreserve"; | 59 | case CEPH_OSD_OP_SCRUB_UNRESERVE: return "scrub-unreserve"; |
1813 | 59 | case CEPH_OSD_OP_SCRUB_STOP: return "scrub-stop"; | 60 | case CEPH_OSD_OP_SCRUB_STOP: return "scrub-stop"; |
1814 | 60 | case CEPH_OSD_OP_SCRUB_MAP: return "scrub-map"; | 61 | case CEPH_OSD_OP_SCRUB_MAP: return "scrub-map"; |
1815 | 62 | ======= | ||
1816 | 63 | case CEPH_OSD_OP_SCRUB_RESERVE: return "scrub-reserve"; | ||
1817 | 64 | case CEPH_OSD_OP_SCRUB_UNRESERVE: return "scrub-unreserve"; | ||
1818 | 65 | case CEPH_OSD_OP_SCRUB_STOP: return "scrub-stop"; | ||
1819 | 66 | >>>>>>> MERGE-SOURCE | ||
1820 | 61 | 67 | ||
1821 | 62 | case CEPH_OSD_OP_WRLOCK: return "wrlock"; | 68 | case CEPH_OSD_OP_WRLOCK: return "wrlock"; |
1822 | 63 | case CEPH_OSD_OP_WRUNLOCK: return "wrunlock"; | 69 | case CEPH_OSD_OP_WRUNLOCK: return "wrunlock"; |
1823 | 64 | 70 | ||
1824 | === modified file 'src/include/rados.h' | |||
1825 | --- src/include/rados.h 2011-02-25 15:17:26 +0000 | |||
1826 | +++ src/include/rados.h 2011-03-28 07:08:46 +0000 | |||
1827 | @@ -220,6 +220,7 @@ | |||
1828 | 220 | CEPH_OSD_OP_RMXATTR = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_ATTR | 4, | 220 | CEPH_OSD_OP_RMXATTR = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_ATTR | 4, |
1829 | 221 | 221 | ||
1830 | 222 | /** subop **/ | 222 | /** subop **/ |
1831 | 223 | <<<<<<< TREE | ||
1832 | 223 | CEPH_OSD_OP_PULL = CEPH_OSD_OP_MODE_SUB | 1, | 224 | CEPH_OSD_OP_PULL = CEPH_OSD_OP_MODE_SUB | 1, |
1833 | 224 | CEPH_OSD_OP_PUSH = CEPH_OSD_OP_MODE_SUB | 2, | 225 | CEPH_OSD_OP_PUSH = CEPH_OSD_OP_MODE_SUB | 2, |
1834 | 225 | CEPH_OSD_OP_BALANCEREADS = CEPH_OSD_OP_MODE_SUB | 3, | 226 | CEPH_OSD_OP_BALANCEREADS = CEPH_OSD_OP_MODE_SUB | 3, |
1835 | @@ -229,6 +230,16 @@ | |||
1836 | 229 | CEPH_OSD_OP_SCRUB_UNRESERVE = CEPH_OSD_OP_MODE_SUB | 7, | 230 | CEPH_OSD_OP_SCRUB_UNRESERVE = CEPH_OSD_OP_MODE_SUB | 7, |
1837 | 230 | CEPH_OSD_OP_SCRUB_STOP = CEPH_OSD_OP_MODE_SUB | 8, | 231 | CEPH_OSD_OP_SCRUB_STOP = CEPH_OSD_OP_MODE_SUB | 8, |
1838 | 231 | CEPH_OSD_OP_SCRUB_MAP = CEPH_OSD_OP_MODE_SUB | 9, | 232 | CEPH_OSD_OP_SCRUB_MAP = CEPH_OSD_OP_MODE_SUB | 9, |
1839 | 233 | ======= | ||
1840 | 234 | CEPH_OSD_OP_PULL = CEPH_OSD_OP_MODE_SUB | 1, | ||
1841 | 235 | CEPH_OSD_OP_PUSH = CEPH_OSD_OP_MODE_SUB | 2, | ||
1842 | 236 | CEPH_OSD_OP_BALANCEREADS = CEPH_OSD_OP_MODE_SUB | 3, | ||
1843 | 237 | CEPH_OSD_OP_UNBALANCEREADS = CEPH_OSD_OP_MODE_SUB | 4, | ||
1844 | 238 | CEPH_OSD_OP_SCRUB = CEPH_OSD_OP_MODE_SUB | 5, | ||
1845 | 239 | CEPH_OSD_OP_SCRUB_RESERVE = CEPH_OSD_OP_MODE_SUB | 6, | ||
1846 | 240 | CEPH_OSD_OP_SCRUB_UNRESERVE = CEPH_OSD_OP_MODE_SUB | 7, | ||
1847 | 241 | CEPH_OSD_OP_SCRUB_STOP = CEPH_OSD_OP_MODE_SUB | 8, | ||
1848 | 242 | >>>>>>> MERGE-SOURCE | ||
1849 | 232 | 243 | ||
1850 | 233 | /** lock **/ | 244 | /** lock **/ |
1851 | 234 | CEPH_OSD_OP_WRLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 1, | 245 | CEPH_OSD_OP_WRLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 1, |
1852 | 235 | 246 | ||
1853 | === modified file 'src/mds/Locker.cc' | |||
1854 | === modified file 'src/mds/MDS.cc' | |||
1855 | --- src/mds/MDS.cc 2011-02-25 15:17:26 +0000 | |||
1856 | +++ src/mds/MDS.cc 2011-03-28 07:08:46 +0000 | |||
1857 | @@ -924,10 +924,16 @@ | |||
1858 | 924 | oldmap->get_mds_set(oldresolve, MDSMap::STATE_RESOLVE); | 924 | oldmap->get_mds_set(oldresolve, MDSMap::STATE_RESOLVE); |
1859 | 925 | mdsmap->get_mds_set(resolve, MDSMap::STATE_RESOLVE); | 925 | mdsmap->get_mds_set(resolve, MDSMap::STATE_RESOLVE); |
1860 | 926 | if (oldresolve != resolve) { | 926 | if (oldresolve != resolve) { |
1861 | 927 | <<<<<<< TREE | ||
1862 | 927 | dout(10) << " resolve set is " << resolve << ", was " << oldresolve << dendl; | 928 | dout(10) << " resolve set is " << resolve << ", was " << oldresolve << dendl; |
1863 | 928 | calc_recovery_set(); | 929 | calc_recovery_set(); |
1864 | 929 | if (!mdsmap->is_any_failed()) | 930 | if (!mdsmap->is_any_failed()) |
1865 | 930 | mdcache->send_resolves(); | 931 | mdcache->send_resolves(); |
1866 | 932 | ======= | ||
1867 | 933 | dout(10) << " resolve set is " << resolve << ", was " << oldresolve << dendl; | ||
1868 | 934 | calc_recovery_set(); | ||
1869 | 935 | mdcache->send_resolves(); | ||
1870 | 936 | >>>>>>> MERGE-SOURCE | ||
1871 | 931 | } | 937 | } |
1872 | 932 | } | 938 | } |
1873 | 933 | 939 | ||
1874 | 934 | 940 | ||
1875 | === modified file 'src/mds/MDSMap.h' | |||
1876 | === modified file 'src/mon/MDSMonitor.cc' | |||
1877 | --- src/mon/MDSMonitor.cc 2011-02-25 15:17:26 +0000 | |||
1878 | +++ src/mon/MDSMonitor.cc 2011-03-28 07:08:46 +0000 | |||
1879 | @@ -182,6 +182,7 @@ | |||
1880 | 182 | << " " << m->get_compat() | 182 | << " " << m->get_compat() |
1881 | 183 | << dendl; | 183 | << dendl; |
1882 | 184 | 184 | ||
1883 | 185 | <<<<<<< TREE | ||
1884 | 185 | // make sure the address has a port | 186 | // make sure the address has a port |
1885 | 186 | if (m->get_orig_source_addr().get_port() == 0) { | 187 | if (m->get_orig_source_addr().get_port() == 0) { |
1886 | 187 | dout(1) << " ignoring boot message without a port" << dendl; | 188 | dout(1) << " ignoring boot message without a port" << dendl; |
1887 | @@ -194,6 +195,14 @@ | |||
1888 | 194 | goto out; | 195 | goto out; |
1889 | 195 | } | 196 | } |
1890 | 196 | 197 | ||
1891 | 198 | ======= | ||
1892 | 199 | // check compat | ||
1893 | 200 | if (!m->get_compat().writeable(mdsmap.compat)) { | ||
1894 | 201 | dout(1) << " mds " << m->get_source_inst() << " can't write to mdsmap " << mdsmap.compat << dendl; | ||
1895 | 202 | goto out; | ||
1896 | 203 | } | ||
1897 | 204 | |||
1898 | 205 | >>>>>>> MERGE-SOURCE | ||
1899 | 197 | // fw to leader? | 206 | // fw to leader? |
1900 | 198 | if (!mon->is_leader()) | 207 | if (!mon->is_leader()) |
1901 | 199 | return false; | 208 | return false; |
1902 | 200 | 209 | ||
1903 | === modified file 'src/mount/mount.ceph.c' | |||
1904 | === modified file 'src/msg/Message.cc' | |||
1905 | --- src/msg/Message.cc 2011-02-25 15:17:26 +0000 | |||
1906 | +++ src/msg/Message.cc 2011-03-28 07:08:46 +0000 | |||
1907 | @@ -315,12 +315,18 @@ | |||
1908 | 315 | case MSG_REMOVE_SNAPS: | 315 | case MSG_REMOVE_SNAPS: |
1909 | 316 | m = new MRemoveSnaps; | 316 | m = new MRemoveSnaps; |
1910 | 317 | break; | 317 | break; |
1911 | 318 | <<<<<<< TREE | ||
1912 | 318 | case MSG_OSD_PG_MISSING: | 319 | case MSG_OSD_PG_MISSING: |
1913 | 319 | m = new MOSDPGMissing; | 320 | m = new MOSDPGMissing; |
1914 | 320 | break; | 321 | break; |
1915 | 321 | case MSG_OSD_REP_SCRUB: | 322 | case MSG_OSD_REP_SCRUB: |
1916 | 322 | m = new MOSDRepScrub; | 323 | m = new MOSDRepScrub; |
1917 | 323 | break; | 324 | break; |
1918 | 325 | ======= | ||
1919 | 326 | case MSG_OSD_PG_MISSING: | ||
1920 | 327 | m = new MOSDPGMissing; | ||
1921 | 328 | break; | ||
1922 | 329 | >>>>>>> MERGE-SOURCE | ||
1923 | 324 | // auth | 330 | // auth |
1924 | 325 | case CEPH_MSG_AUTH: | 331 | case CEPH_MSG_AUTH: |
1925 | 326 | m = new MAuth; | 332 | m = new MAuth; |
1926 | 327 | 333 | ||
1927 | === modified file 'src/msg/Message.h' | |||
1928 | --- src/msg/Message.h 2011-02-25 15:17:26 +0000 | |||
1929 | +++ src/msg/Message.h 2011-03-28 07:08:46 +0000 | |||
1930 | @@ -73,8 +73,12 @@ | |||
1931 | 73 | #define MSG_REMOVE_SNAPS 90 | 73 | #define MSG_REMOVE_SNAPS 90 |
1932 | 74 | 74 | ||
1933 | 75 | #define MSG_OSD_SCRUB 91 | 75 | #define MSG_OSD_SCRUB 91 |
1934 | 76 | <<<<<<< TREE | ||
1935 | 76 | #define MSG_OSD_PG_MISSING 92 | 77 | #define MSG_OSD_PG_MISSING 92 |
1936 | 77 | #define MSG_OSD_REP_SCRUB 93 | 78 | #define MSG_OSD_REP_SCRUB 93 |
1937 | 79 | ======= | ||
1938 | 80 | #define MSG_OSD_PG_MISSING 92 | ||
1939 | 81 | >>>>>>> MERGE-SOURCE | ||
1940 | 78 | 82 | ||
1941 | 79 | 83 | ||
1942 | 80 | 84 | ||
1943 | 81 | 85 | ||
1944 | === modified file 'src/os/FileStore.cc' | |||
1945 | --- src/os/FileStore.cc 2011-02-25 15:17:26 +0000 | |||
1946 | +++ src/os/FileStore.cc 2011-03-28 07:08:46 +0000 | |||
1947 | @@ -1048,6 +1048,7 @@ | |||
1948 | 1048 | dout(0) << "mount WARNING: not btrfs, store may be in inconsistent state" << dendl; | 1048 | dout(0) << "mount WARNING: not btrfs, store may be in inconsistent state" << dendl; |
1949 | 1049 | } else { | 1049 | } else { |
1950 | 1050 | uint64_t cp = snaps.back(); | 1050 | uint64_t cp = snaps.back(); |
1951 | 1051 | <<<<<<< TREE | ||
1952 | 1051 | uint64_t curr_seq; | 1052 | uint64_t curr_seq; |
1953 | 1052 | 1053 | ||
1954 | 1053 | int curr_fd = read_op_seq(current_op_seq_fn, &curr_seq); | 1054 | int curr_fd = read_op_seq(current_op_seq_fn, &curr_seq); |
1955 | @@ -1079,6 +1080,38 @@ | |||
1956 | 1079 | cerr << TEXT_YELLOW | 1080 | cerr << TEXT_YELLOW |
1957 | 1080 | << " ** WARNING: forcing the use of stale snapshot data\n" << TEXT_NORMAL; | 1081 | << " ** WARNING: forcing the use of stale snapshot data\n" << TEXT_NORMAL; |
1958 | 1081 | } | 1082 | } |
1959 | 1083 | ======= | ||
1960 | 1084 | uint64_t curr_seq; | ||
1961 | 1085 | |||
1962 | 1086 | int curr_fd = read_op_seq(current_op_seq_fn, &curr_seq); | ||
1963 | 1087 | assert(curr_fd >= 0); | ||
1964 | 1088 | close(curr_fd); | ||
1965 | 1089 | dout(10) << "*** curr_seq=" << curr_seq << " cp=" << cp << dendl; | ||
1966 | 1090 | |||
1967 | 1091 | if (cp != curr_seq && !g_conf.osd_use_stale_snap) { | ||
1968 | 1092 | dout(0) << "\n" | ||
1969 | 1093 | << " ** ERROR: current volume data version is not equal to snapshotted version\n" | ||
1970 | 1094 | << " which can lead to data inconsistency. \n" | ||
1971 | 1095 | << " Current version=" << curr_seq << " snapshot version=" << cp << "\n" | ||
1972 | 1096 | << " Startup with snapshotted version can be forced using the\n" | ||
1973 | 1097 | <<" 'osd use stale snap = true' config option.\n" | ||
1974 | 1098 | << dendl; | ||
1975 | 1099 | cerr << TEXT_RED | ||
1976 | 1100 | << " ** ERROR: current volume data version is not equal to snapshotted version\n" | ||
1977 | 1101 | << " which can lead to data inconsistency. \n" | ||
1978 | 1102 | << " Current version=" << curr_seq << " snapshot version=" << cp << "\n" | ||
1979 | 1103 | << " Startup with snapshotted version can be forced using the\n" | ||
1980 | 1104 | <<" 'osd use stale snap = true' config option.\n" | ||
1981 | 1105 | << TEXT_NORMAL; | ||
1982 | 1106 | exit(1); | ||
1983 | 1107 | } | ||
1984 | 1108 | |||
1985 | 1109 | if (cp != curr_seq) { | ||
1986 | 1110 | dout(0) << "WARNING: user forced start with data sequence mismatch: curr=" << curr_seq << " snap_seq=" << cp << dendl; | ||
1987 | 1111 | cerr << TEXT_YELLOW | ||
1988 | 1112 | << " ** WARNING: forcing the use of stale snapshot data\n" << TEXT_NORMAL; | ||
1989 | 1113 | } | ||
1990 | 1114 | >>>>>>> MERGE-SOURCE | ||
1991 | 1082 | 1115 | ||
1992 | 1083 | // drop current | 1116 | // drop current |
1993 | 1084 | btrfs_ioctl_vol_args vol_args; | 1117 | btrfs_ioctl_vol_args vol_args; |
1994 | @@ -1109,6 +1142,7 @@ | |||
1995 | 1109 | ::close(vol_args.fd); | 1142 | ::close(vol_args.fd); |
1996 | 1110 | dout(10) << "mount rolled back to consistent snap " << cp << dendl; | 1143 | dout(10) << "mount rolled back to consistent snap " << cp << dendl; |
1997 | 1111 | snaps.pop_back(); | 1144 | snaps.pop_back(); |
1998 | 1145 | <<<<<<< TREE | ||
1999 | 1112 | 1146 | ||
2000 | 1113 | if (cp != curr_seq) { | 1147 | if (cp != curr_seq) { |
2001 | 1114 | curr_fd = read_op_seq(current_op_seq_fn, &curr_seq); | 1148 | curr_fd = read_op_seq(current_op_seq_fn, &curr_seq); |
2002 | @@ -1117,6 +1151,17 @@ | |||
2003 | 1117 | write_op_seq(curr_fd, curr_seq); | 1151 | write_op_seq(curr_fd, curr_seq); |
2004 | 1118 | ::close(curr_fd); | 1152 | ::close(curr_fd); |
2005 | 1119 | } | 1153 | } |
2006 | 1154 | ======= | ||
2007 | 1155 | |||
2008 | 1156 | assert(curr_fd >= 0); | ||
2009 | 1157 | if (cp != curr_seq) { | ||
2010 | 1158 | curr_fd = read_op_seq(current_op_seq_fn, &curr_seq); | ||
2011 | 1159 | /* we'll use the higher version from now on */ | ||
2012 | 1160 | curr_seq = cp; | ||
2013 | 1161 | write_op_seq(curr_fd, curr_seq); | ||
2014 | 1162 | } | ||
2015 | 1163 | close(curr_fd); | ||
2016 | 1164 | >>>>>>> MERGE-SOURCE | ||
2017 | 1120 | } | 1165 | } |
2018 | 1121 | } | 1166 | } |
2019 | 1122 | 1167 | ||
2020 | 1123 | 1168 | ||
2021 | === modified file 'src/osd/OSD.cc' | |||
2022 | --- src/osd/OSD.cc 2011-02-25 15:17:26 +0000 | |||
2023 | +++ src/osd/OSD.cc 2011-03-28 07:08:46 +0000 | |||
2024 | @@ -2056,6 +2056,7 @@ | |||
2025 | 2056 | { | 2056 | { |
2026 | 2057 | // lock! | 2057 | // lock! |
2027 | 2058 | osd_lock.Lock(); | 2058 | osd_lock.Lock(); |
2028 | 2059 | <<<<<<< TREE | ||
2029 | 2059 | while (dispatch_running) { | 2060 | while (dispatch_running) { |
2030 | 2060 | dout(10) << "ms_dispatch waiting for other dispatch thread to complete" << dendl; | 2061 | dout(10) << "ms_dispatch waiting for other dispatch thread to complete" << dendl; |
2031 | 2061 | dispatch_cond.Wait(osd_lock); | 2062 | dispatch_cond.Wait(osd_lock); |
2032 | @@ -2063,7 +2064,11 @@ | |||
2033 | 2063 | dispatch_running = true; | 2064 | dispatch_running = true; |
2034 | 2064 | 2065 | ||
2035 | 2065 | do_waiters(); | 2066 | do_waiters(); |
2036 | 2067 | ======= | ||
2037 | 2068 | ++dispatch_running; | ||
2038 | 2069 | >>>>>>> MERGE-SOURCE | ||
2039 | 2066 | _dispatch(m); | 2070 | _dispatch(m); |
2040 | 2071 | <<<<<<< TREE | ||
2041 | 2067 | do_waiters(); | 2072 | do_waiters(); |
2042 | 2068 | 2073 | ||
2043 | 2069 | dispatch_running = false; | 2074 | dispatch_running = false; |
2044 | @@ -2071,6 +2076,10 @@ | |||
2045 | 2071 | // no need to signal here, since tick() doesn't wait. | 2076 | // no need to signal here, since tick() doesn't wait. |
2046 | 2072 | //dispatch_cond.Signal(); | 2077 | //dispatch_cond.Signal(); |
2047 | 2073 | 2078 | ||
2048 | 2079 | ======= | ||
2049 | 2080 | --dispatch_running; | ||
2050 | 2081 | do_waiters(); | ||
2051 | 2082 | >>>>>>> MERGE-SOURCE | ||
2052 | 2074 | osd_lock.Unlock(); | 2083 | osd_lock.Unlock(); |
2053 | 2075 | return true; | 2084 | return true; |
2054 | 2076 | } | 2085 | } |
2055 | @@ -2279,6 +2288,7 @@ | |||
2056 | 2279 | } | 2288 | } |
2057 | 2280 | } | 2289 | } |
2058 | 2281 | } | 2290 | } |
2059 | 2291 | <<<<<<< TREE | ||
2060 | 2282 | 2292 | ||
2061 | 2283 | logger->set(l_osd_buf, buffer_total_alloc.read()); | 2293 | logger->set(l_osd_buf, buffer_total_alloc.read()); |
2062 | 2284 | 2294 | ||
2063 | @@ -2289,6 +2299,13 @@ | |||
2064 | 2289 | dout(10) << "queueing MOSDRepScrub " << *m << dendl; | 2299 | dout(10) << "queueing MOSDRepScrub " << *m << dendl; |
2065 | 2290 | rep_scrub_wq.queue(m); | 2300 | rep_scrub_wq.queue(m); |
2066 | 2291 | } | 2301 | } |
2067 | 2302 | ======= | ||
2068 | 2303 | |||
2069 | 2304 | logger->set(l_osd_buf, buffer_total_alloc.read()); | ||
2070 | 2305 | |||
2071 | 2306 | } | ||
2072 | 2307 | |||
2073 | 2308 | >>>>>>> MERGE-SOURCE | ||
2074 | 2292 | 2309 | ||
2075 | 2293 | void OSD::handle_scrub(MOSDScrub *m) | 2310 | void OSD::handle_scrub(MOSDScrub *m) |
2076 | 2294 | { | 2311 | { |
2077 | @@ -2769,9 +2786,14 @@ | |||
2078 | 2769 | pg->write_info(t); | 2786 | pg->write_info(t); |
2079 | 2770 | } | 2787 | } |
2080 | 2771 | 2788 | ||
2081 | 2789 | <<<<<<< TREE | ||
2082 | 2772 | bool do_shutdown = false; | 2790 | bool do_shutdown = false; |
2083 | 2773 | bool do_restart = false; | 2791 | bool do_restart = false; |
2084 | 2792 | ======= | ||
2085 | 2793 | bool do_shutdown = false; | ||
2086 | 2794 | >>>>>>> MERGE-SOURCE | ||
2087 | 2774 | if (osdmap->get_epoch() > 0 && | 2795 | if (osdmap->get_epoch() > 0 && |
2088 | 2796 | <<<<<<< TREE | ||
2089 | 2775 | state == STATE_ACTIVE) { | 2797 | state == STATE_ACTIVE) { |
2090 | 2776 | if (!osdmap->exists(whoami)) { | 2798 | if (!osdmap->exists(whoami)) { |
2091 | 2777 | dout(0) << "map says i do not exist. shutting down." << dendl; | 2799 | dout(0) << "map says i do not exist. shutting down." << dendl; |
2092 | @@ -2812,6 +2834,34 @@ | |||
2093 | 2812 | 2834 | ||
2094 | 2813 | reset_heartbeat_peers(); | 2835 | reset_heartbeat_peers(); |
2095 | 2814 | } | 2836 | } |
2096 | 2837 | ======= | ||
2097 | 2838 | state == STATE_ACTIVE) { | ||
2098 | 2839 | if (!osdmap->exists(whoami)) { | ||
2099 | 2840 | dout(0) << "map says i do not exist. shutting down." << dendl; | ||
2100 | 2841 | do_shutdown = true; // don't call shutdown() while we have everything paused | ||
2101 | 2842 | } else if (!osdmap->is_up(whoami) || | ||
2102 | 2843 | osdmap->get_addr(whoami) != client_messenger->get_myaddr()) { | ||
2103 | 2844 | stringstream ss; | ||
2104 | 2845 | ss << "map e" << osdmap->get_epoch() << " wrongly marked me down"; | ||
2105 | 2846 | logclient.log(LOG_WARN, ss); | ||
2106 | 2847 | |||
2107 | 2848 | state = STATE_BOOTING; | ||
2108 | 2849 | up_epoch = 0; | ||
2109 | 2850 | |||
2110 | 2851 | int cport = cluster_messenger->get_myaddr().get_port(); | ||
2111 | 2852 | int hbport = heartbeat_messenger->get_myaddr().get_port(); | ||
2112 | 2853 | |||
2113 | 2854 | int r = cluster_messenger->rebind(hbport); | ||
2114 | 2855 | if (r != 0) | ||
2115 | 2856 | do_shutdown = true; // FIXME: do_restart? | ||
2116 | 2857 | |||
2117 | 2858 | r = heartbeat_messenger->rebind(cport); | ||
2118 | 2859 | if (r != 0) | ||
2119 | 2860 | do_shutdown = true; // FIXME: do_restart? | ||
2120 | 2861 | |||
2121 | 2862 | reset_heartbeat_peers(); | ||
2122 | 2863 | } | ||
2123 | 2864 | >>>>>>> MERGE-SOURCE | ||
2124 | 2815 | } | 2865 | } |
2125 | 2816 | 2866 | ||
2126 | 2817 | // note in the superblock that we were clean thru the prior epoch | 2867 | // note in the superblock that we were clean thru the prior epoch |
2127 | 2818 | 2868 | ||
2128 | === modified file 'src/osd/OSD.h' | |||
2129 | --- src/osd/OSD.h 2011-02-25 15:17:26 +0000 | |||
2130 | +++ src/osd/OSD.h 2011-03-28 07:08:46 +0000 | |||
2131 | @@ -133,8 +133,12 @@ | |||
2132 | 133 | } | 133 | } |
2133 | 134 | }; | 134 | }; |
2134 | 135 | 135 | ||
2135 | 136 | <<<<<<< TREE | ||
2136 | 136 | Cond dispatch_cond; | 137 | Cond dispatch_cond; |
2137 | 137 | int dispatch_running; | 138 | int dispatch_running; |
2138 | 139 | ======= | ||
2139 | 140 | int dispatch_running; | ||
2140 | 141 | >>>>>>> MERGE-SOURCE | ||
2141 | 138 | 142 | ||
2142 | 139 | void open_logger(); | 143 | void open_logger(); |
2143 | 140 | void start_logger(); | 144 | void start_logger(); |
2144 | 141 | 145 | ||
2145 | === modified file 'src/osd/PG.cc' | |||
2146 | --- src/osd/PG.cc 2011-02-25 15:17:26 +0000 | |||
2147 | +++ src/osd/PG.cc 2011-03-28 07:08:46 +0000 | |||
2148 | @@ -2742,70 +2742,175 @@ | |||
2149 | 2742 | // ========================================================================================== | 2742 | // ========================================================================================== |
2150 | 2743 | // SCRUB | 2743 | // SCRUB |
2151 | 2744 | 2744 | ||
2216 | 2745 | /* | 2745 | <<<<<<< TREE |
2217 | 2746 | * when holding pg and sched_scrub_lock, then the states are: | 2746 | /* |
2218 | 2747 | * scheduling: | 2747 | * when holding pg and sched_scrub_lock, then the states are: |
2219 | 2748 | * scrub_reserved = true | 2748 | * scheduling: |
2220 | 2749 | * scrub_rserved_peers includes whoami | 2749 | * scrub_reserved = true |
2221 | 2750 | * osd->scrub_pending++ | 2750 | * scrub_rserved_peers includes whoami |
2222 | 2751 | * scheduling, replica declined: | 2751 | * osd->scrub_pending++ |
2223 | 2752 | * scrub_reserved = true | 2752 | * scheduling, replica declined: |
2224 | 2753 | * scrub_reserved_peers includes -1 | 2753 | * scrub_reserved = true |
2225 | 2754 | * osd->scrub_pending++ | 2754 | * scrub_reserved_peers includes -1 |
2226 | 2755 | * pending: | 2755 | * osd->scrub_pending++ |
2227 | 2756 | * scrub_reserved = true | 2756 | * pending: |
2228 | 2757 | * scrub_reserved_peers.size() == acting.size(); | 2757 | * scrub_reserved = true |
2229 | 2758 | * pg on scrub_wq | 2758 | * scrub_reserved_peers.size() == acting.size(); |
2230 | 2759 | * osd->scrub_pending++ | 2759 | * pg on scrub_wq |
2231 | 2760 | * scrubbing: | 2760 | * osd->scrub_pending++ |
2232 | 2761 | * scrub_reserved = false; | 2761 | * scrubbing: |
2233 | 2762 | * scrub_reserved_peers empty | 2762 | * scrub_reserved = false; |
2234 | 2763 | * osd->scrub_active++ | 2763 | * scrub_reserved_peers empty |
2235 | 2764 | */ | 2764 | * osd->scrub_active++ |
2236 | 2765 | 2765 | */ | |
2237 | 2766 | // returns false if waiting for a reply | 2766 | |
2238 | 2767 | bool PG::sched_scrub() | 2767 | // returns false if waiting for a reply |
2239 | 2768 | { | 2768 | bool PG::sched_scrub() |
2240 | 2769 | assert(_lock.is_locked()); | 2769 | ======= |
2241 | 2770 | if (!(is_primary() && is_active() && is_clean() && !is_scrubbing())) { | 2770 | /* |
2242 | 2771 | return true; | 2771 | * when holding pg and sched_scrub_lock, then the states are: |
2243 | 2772 | } | 2772 | * scheduling: |
2244 | 2773 | 2773 | * scrub_reserved = true | |
2245 | 2774 | // just scrubbed? | 2774 | * scrub_rserved_peers includes whoami |
2246 | 2775 | if (info.history.last_scrub_stamp + g_conf.osd_scrub_min_interval > g_clock.now()) { | 2775 | * osd->scrub_pending++ |
2247 | 2776 | dout(20) << "sched_scrub: just scrubbed, skipping" << dendl; | 2776 | * scheduling, replica declined: |
2248 | 2777 | return true; | 2777 | * scrub_reserved = true |
2249 | 2778 | } | 2778 | * scrub_reserved_peers includes -1 |
2250 | 2779 | 2779 | * osd->scrub_pending++ | |
2251 | 2780 | bool ret = false; | 2780 | * pending: |
2252 | 2781 | if (!scrub_reserved) { | 2781 | * scrub_reserved = true |
2253 | 2782 | assert(scrub_reserved_peers.empty()); | 2782 | * scrub_reserved_peers.size() == acting.size(); |
2254 | 2783 | if (osd->inc_scrubs_pending()) { | 2783 | * pg on scrub_wq |
2255 | 2784 | dout(20) << "sched_scrub: reserved locally, reserving replicas" << dendl; | 2784 | * osd->scrub_pending++ |
2256 | 2785 | scrub_reserved = true; | 2785 | * scrubbing: |
2257 | 2786 | scrub_reserved_peers.insert(osd->whoami); | 2786 | * scrub_reserved = false; |
2258 | 2787 | scrub_reserve_replicas(); | 2787 | * scrub_reserved_peers empty |
2259 | 2788 | } else { | 2788 | * osd->scrub_active++ |
2260 | 2789 | dout(20) << "sched_scrub: failed to reserve locally" << dendl; | 2789 | */ |
2261 | 2790 | } | 2790 | |
2262 | 2791 | } | 2791 | // returns false if waiting for a reply |
2263 | 2792 | if (scrub_reserved) { | 2792 | bool PG::sched_scrub() |
2264 | 2793 | if (scrub_reserve_failed) { | 2793 | { |
2265 | 2794 | dout(20) << "sched_scrub: failed, a peer declined" << dendl; | 2794 | assert(_lock.is_locked()); |
2266 | 2795 | clear_scrub_reserved(); | 2795 | if (!(is_primary() && is_active() && is_clean() && !is_scrubbing())) { |
2267 | 2796 | scrub_unreserve_replicas(); | 2796 | return true; |
2268 | 2797 | ret = true; | 2797 | } |
2269 | 2798 | } else if (scrub_reserved_peers.size() == acting.size()) { | 2798 | |
2270 | 2799 | dout(20) << "sched_scrub: success, reserved self and replicas" << dendl; | 2799 | // just scrubbed? |
2271 | 2800 | osd->scrub_wq.queue(this); | 2800 | if (info.history.last_scrub_stamp + g_conf.osd_scrub_min_interval > g_clock.now()) { |
2272 | 2801 | ret = true; | 2801 | dout(20) << "sched_scrub: just scrubbed, skipping" << dendl; |
2273 | 2802 | } else { | 2802 | return true; |
2274 | 2803 | // none declined, since scrub_reserved is set | 2803 | } |
2275 | 2804 | dout(20) << "sched_scrub: reserved " << scrub_reserved_peers << ", waiting for replicas" << dendl; | 2804 | |
2276 | 2805 | } | 2805 | bool ret = false; |
2277 | 2806 | } | 2806 | if (!scrub_reserved) { |
2278 | 2807 | 2807 | assert(scrub_reserved_peers.empty()); | |
2279 | 2808 | return ret; | 2808 | if (osd->inc_scrubs_pending()) { |
2280 | 2809 | dout(20) << "sched_scrub: reserved locally, reserving replicas" << dendl; | ||
2281 | 2810 | scrub_reserved = true; | ||
2282 | 2811 | scrub_reserved_peers.insert(osd->whoami); | ||
2283 | 2812 | scrub_reserve_replicas(); | ||
2284 | 2813 | } else { | ||
2285 | 2814 | dout(20) << "sched_scrub: failed to reserve locally" << dendl; | ||
2286 | 2815 | } | ||
2287 | 2816 | } | ||
2288 | 2817 | if (scrub_reserved) { | ||
2289 | 2818 | if (scrub_reserve_failed) { | ||
2290 | 2819 | dout(20) << "sched_scrub: failed, a peer declined" << dendl; | ||
2291 | 2820 | clear_scrub_reserved(); | ||
2292 | 2821 | scrub_unreserve_replicas(); | ||
2293 | 2822 | ret = true; | ||
2294 | 2823 | } else if (scrub_reserved_peers.size() == acting.size()) { | ||
2295 | 2824 | dout(20) << "sched_scrub: success, reserved self and replicas" << dendl; | ||
2296 | 2825 | osd->scrub_wq.queue(this); | ||
2297 | 2826 | ret = true; | ||
2298 | 2827 | } else { | ||
2299 | 2828 | // none declined, since scrub_reserved is set | ||
2300 | 2829 | dout(20) << "sched_scrub: reserved " << scrub_reserved_peers << ", waiting for replicas" << dendl; | ||
2301 | 2830 | } | ||
2302 | 2831 | } | ||
2303 | 2832 | |||
2304 | 2833 | return ret; | ||
2305 | 2834 | } | ||
2306 | 2835 | |||
2307 | 2836 | void PG::sub_op_scrub(MOSDSubOp *op) | ||
2308 | 2837 | >>>>>>> MERGE-SOURCE | ||
2309 | 2838 | { | ||
2310 | 2839 | <<<<<<< TREE | ||
2311 | 2840 | assert(_lock.is_locked()); | ||
2312 | 2841 | if (!(is_primary() && is_active() && is_clean() && !is_scrubbing())) { | ||
2313 | 2842 | return true; | ||
2314 | 2843 | } | ||
2315 | 2844 | |||
2316 | 2845 | // just scrubbed? | ||
2317 | 2846 | if (info.history.last_scrub_stamp + g_conf.osd_scrub_min_interval > g_clock.now()) { | ||
2318 | 2847 | dout(20) << "sched_scrub: just scrubbed, skipping" << dendl; | ||
2319 | 2848 | return true; | ||
2320 | 2849 | } | ||
2321 | 2850 | |||
2322 | 2851 | bool ret = false; | ||
2323 | 2852 | if (!scrub_reserved) { | ||
2324 | 2853 | assert(scrub_reserved_peers.empty()); | ||
2325 | 2854 | if (osd->inc_scrubs_pending()) { | ||
2326 | 2855 | dout(20) << "sched_scrub: reserved locally, reserving replicas" << dendl; | ||
2327 | 2856 | scrub_reserved = true; | ||
2328 | 2857 | scrub_reserved_peers.insert(osd->whoami); | ||
2329 | 2858 | scrub_reserve_replicas(); | ||
2330 | 2859 | } else { | ||
2331 | 2860 | dout(20) << "sched_scrub: failed to reserve locally" << dendl; | ||
2332 | 2861 | } | ||
2333 | 2862 | } | ||
2334 | 2863 | if (scrub_reserved) { | ||
2335 | 2864 | if (scrub_reserve_failed) { | ||
2336 | 2865 | dout(20) << "sched_scrub: failed, a peer declined" << dendl; | ||
2337 | 2866 | clear_scrub_reserved(); | ||
2338 | 2867 | scrub_unreserve_replicas(); | ||
2339 | 2868 | ret = true; | ||
2340 | 2869 | } else if (scrub_reserved_peers.size() == acting.size()) { | ||
2341 | 2870 | dout(20) << "sched_scrub: success, reserved self and replicas" << dendl; | ||
2342 | 2871 | osd->scrub_wq.queue(this); | ||
2343 | 2872 | ret = true; | ||
2344 | 2873 | } else { | ||
2345 | 2874 | // none declined, since scrub_reserved is set | ||
2346 | 2875 | dout(20) << "sched_scrub: reserved " << scrub_reserved_peers << ", waiting for replicas" << dendl; | ||
2347 | 2876 | } | ||
2348 | 2877 | } | ||
2349 | 2878 | |||
2350 | 2879 | return ret; | ||
2351 | 2880 | ======= | ||
2352 | 2881 | dout(7) << "sub_op_scrub" << dendl; | ||
2353 | 2882 | |||
2354 | 2883 | if (op->map_epoch < info.history.same_acting_since) { | ||
2355 | 2884 | dout(10) << "sub_op_scrub discarding old sub_op from " | ||
2356 | 2885 | << op->map_epoch << " < " << info.history.same_acting_since << dendl; | ||
2357 | 2886 | op->put(); | ||
2358 | 2887 | return; | ||
2359 | 2888 | } | ||
2360 | 2889 | |||
2361 | 2890 | ScrubMap map; | ||
2362 | 2891 | if (op->version > eversion_t()) { | ||
2363 | 2892 | epoch_t epoch = info.history.same_acting_since; | ||
2364 | 2893 | finalizing_scrub = 1; | ||
2365 | 2894 | while (last_update_applied != info.last_update) { | ||
2366 | 2895 | wait(); | ||
2367 | 2896 | if (epoch != info.history.same_acting_since || | ||
2368 | 2897 | osd->is_stopping()) { | ||
2369 | 2898 | dout(10) << "scrub pg changed, aborting" << dendl; | ||
2370 | 2899 | return; | ||
2371 | 2900 | } | ||
2372 | 2901 | } | ||
2373 | 2902 | build_inc_scrub_map(map, op->version); | ||
2374 | 2903 | finalizing_scrub = 0; | ||
2375 | 2904 | } else { | ||
2376 | 2905 | build_scrub_map(map); | ||
2377 | 2906 | } | ||
2378 | 2907 | |||
2379 | 2908 | MOSDSubOpReply *reply = new MOSDSubOpReply(op, 0, osd->osdmap->get_epoch(), CEPH_OSD_FLAG_ACK); | ||
2380 | 2909 | ::encode(map, reply->get_data()); | ||
2381 | 2910 | osd->cluster_messenger->send_message(reply, op->get_connection()); | ||
2382 | 2911 | |||
2383 | 2912 | op->put(); | ||
2384 | 2913 | >>>>>>> MERGE-SOURCE | ||
2385 | 2809 | } | 2914 | } |
2386 | 2810 | 2915 | ||
2387 | 2811 | 2916 | ||
2388 | @@ -2834,6 +2939,7 @@ | |||
2389 | 2834 | op->put(); | 2939 | op->put(); |
2390 | 2835 | } | 2940 | } |
2391 | 2836 | 2941 | ||
2392 | 2942 | <<<<<<< TREE | ||
2393 | 2837 | /* | 2943 | /* |
2394 | 2838 | * pg lock may or may not be held | 2944 | * pg lock may or may not be held |
2395 | 2839 | */ | 2945 | */ |
2396 | @@ -2984,6 +3090,164 @@ | |||
2397 | 2984 | osd->cluster_messenger->send_message(subop, osd->osdmap->get_cluster_inst(acting[i])); | 3090 | osd->cluster_messenger->send_message(subop, osd->osdmap->get_cluster_inst(acting[i])); |
2398 | 2985 | } | 3091 | } |
2399 | 2986 | } | 3092 | } |
2400 | 3093 | ======= | ||
2401 | 3094 | /* | ||
2402 | 3095 | * pg lock may or may not be held | ||
2403 | 3096 | */ | ||
2404 | 3097 | void PG::_scan_list(ScrubMap &map, vector<sobject_t> &ls) | ||
2405 | 3098 | { | ||
2406 | 3099 | dout(10) << "_scan_list scanning " << ls.size() << " objects" << dendl; | ||
2407 | 3100 | int i = 0; | ||
2408 | 3101 | for (vector<sobject_t>::iterator p = ls.begin(); | ||
2409 | 3102 | p != ls.end(); | ||
2410 | 3103 | p++, i++) { | ||
2411 | 3104 | sobject_t poid = *p; | ||
2412 | 3105 | |||
2413 | 3106 | struct stat st; | ||
2414 | 3107 | int r = osd->store->stat(coll, poid, &st); | ||
2415 | 3108 | if (r == 0) { | ||
2416 | 3109 | ScrubMap::object &o = map.objects[poid]; | ||
2417 | 3110 | o.size = st.st_size; | ||
2418 | 3111 | osd->store->getattrs(coll, poid, o.attrs); | ||
2419 | 3112 | dout(25) << "_scan_list " << poid << dendl; | ||
2420 | 3113 | } else { | ||
2421 | 3114 | dout(25) << "_scan_list " << poid << " got " << r << ", skipping" << dendl; | ||
2422 | 3115 | } | ||
2423 | 3116 | } | ||
2424 | 3117 | } | ||
2425 | 3118 | |||
2426 | 3119 | void PG::_request_scrub_map(int replica, eversion_t version) | ||
2427 | 3120 | { | ||
2428 | 3121 | dout(10) << "scrub requesting scrubmap from osd" << replica << dendl; | ||
2429 | 3122 | vector<OSDOp> scrub(1); | ||
2430 | 3123 | scrub[0].op.op = CEPH_OSD_OP_SCRUB; | ||
2431 | 3124 | sobject_t poid; | ||
2432 | 3125 | eversion_t v = version; | ||
2433 | 3126 | osd_reqid_t reqid; | ||
2434 | 3127 | MOSDSubOp *subop = new MOSDSubOp(reqid, info.pgid, poid, false, 0, | ||
2435 | 3128 | osd->osdmap->get_epoch(), osd->get_tid(), v); | ||
2436 | 3129 | subop->ops = scrub; | ||
2437 | 3130 | osd->cluster_messenger->send_message(subop, //new MOSDPGScrub(info.pgid, osd->osdmap->get_epoch()), | ||
2438 | 3131 | osd->osdmap->get_cluster_inst(replica)); | ||
2439 | 3132 | } | ||
2440 | 3133 | |||
2441 | 3134 | void PG::sub_op_scrub_reserve(MOSDSubOp *op) | ||
2442 | 3135 | { | ||
2443 | 3136 | dout(7) << "sub_op_scrub_reserve" << dendl; | ||
2444 | 3137 | |||
2445 | 3138 | if (scrub_reserved) { | ||
2446 | 3139 | dout(10) << "Ignoring reserve request: Already reserved" << dendl; | ||
2447 | 3140 | op->put(); | ||
2448 | 3141 | return; | ||
2449 | 3142 | } | ||
2450 | 3143 | |||
2451 | 3144 | scrub_reserved = osd->inc_scrubs_pending(); | ||
2452 | 3145 | |||
2453 | 3146 | MOSDSubOpReply *reply = new MOSDSubOpReply(op, 0, osd->osdmap->get_epoch(), CEPH_OSD_FLAG_ACK); | ||
2454 | 3147 | ::encode(scrub_reserved, reply->get_data()); | ||
2455 | 3148 | osd->cluster_messenger->send_message(reply, op->get_connection()); | ||
2456 | 3149 | |||
2457 | 3150 | op->put(); | ||
2458 | 3151 | } | ||
2459 | 3152 | |||
2460 | 3153 | void PG::sub_op_scrub_reserve_reply(MOSDSubOpReply *op) | ||
2461 | 3154 | { | ||
2462 | 3155 | dout(7) << "sub_op_scrub_reserve_reply" << dendl; | ||
2463 | 3156 | |||
2464 | 3157 | if (!scrub_reserved) { | ||
2465 | 3158 | dout(10) << "ignoring obsolete scrub reserve reply" << dendl; | ||
2466 | 3159 | op->put(); | ||
2467 | 3160 | return; | ||
2468 | 3161 | } | ||
2469 | 3162 | |||
2470 | 3163 | int from = op->get_source().num(); | ||
2471 | 3164 | bufferlist::iterator p = op->get_data().begin(); | ||
2472 | 3165 | bool reserved; | ||
2473 | 3166 | ::decode(reserved, p); | ||
2474 | 3167 | |||
2475 | 3168 | if (scrub_reserved_peers.find(from) != scrub_reserved_peers.end()) { | ||
2476 | 3169 | dout(10) << " already had osd" << from << " reserved" << dendl; | ||
2477 | 3170 | } else { | ||
2478 | 3171 | if (reserved) { | ||
2479 | 3172 | dout(10) << " osd" << from << " scrub reserve = success" << dendl; | ||
2480 | 3173 | scrub_reserved_peers.insert(from); | ||
2481 | 3174 | } else { | ||
2482 | 3175 | /* One decline stops this pg from being scheduled for scrubbing. */ | ||
2483 | 3176 | dout(10) << " osd" << from << " scrub reserve = fail" << dendl; | ||
2484 | 3177 | scrub_reserve_failed = true; | ||
2485 | 3178 | } | ||
2486 | 3179 | sched_scrub(); | ||
2487 | 3180 | } | ||
2488 | 3181 | |||
2489 | 3182 | op->put(); | ||
2490 | 3183 | } | ||
2491 | 3184 | |||
2492 | 3185 | void PG::sub_op_scrub_unreserve(MOSDSubOp *op) | ||
2493 | 3186 | { | ||
2494 | 3187 | dout(7) << "sub_op_scrub_unreserve" << dendl; | ||
2495 | 3188 | |||
2496 | 3189 | clear_scrub_reserved(); | ||
2497 | 3190 | |||
2498 | 3191 | op->put(); | ||
2499 | 3192 | } | ||
2500 | 3193 | |||
2501 | 3194 | void PG::sub_op_scrub_stop(MOSDSubOp *op) | ||
2502 | 3195 | { | ||
2503 | 3196 | dout(7) << "sub_op_scrub_stop" << dendl; | ||
2504 | 3197 | |||
2505 | 3198 | // see comment in sub_op_scrub_reserve | ||
2506 | 3199 | scrub_reserved = false; | ||
2507 | 3200 | |||
2508 | 3201 | MOSDSubOpReply *reply = new MOSDSubOpReply(op, 0, osd->osdmap->get_epoch(), CEPH_OSD_FLAG_ACK); | ||
2509 | 3202 | osd->cluster_messenger->send_message(reply, op->get_connection()); | ||
2510 | 3203 | |||
2511 | 3204 | op->put(); | ||
2512 | 3205 | } | ||
2513 | 3206 | |||
2514 | 3207 | void PG::clear_scrub_reserved() | ||
2515 | 3208 | { | ||
2516 | 3209 | osd->scrub_wq.dequeue(this); | ||
2517 | 3210 | scrub_reserved_peers.clear(); | ||
2518 | 3211 | scrub_reserve_failed = false; | ||
2519 | 3212 | |||
2520 | 3213 | if (scrub_reserved) { | ||
2521 | 3214 | scrub_reserved = false; | ||
2522 | 3215 | osd->dec_scrubs_pending(); | ||
2523 | 3216 | } | ||
2524 | 3217 | } | ||
2525 | 3218 | |||
2526 | 3219 | void PG::scrub_reserve_replicas() | ||
2527 | 3220 | { | ||
2528 | 3221 | for (unsigned i=1; i<acting.size(); i++) { | ||
2529 | 3222 | dout(10) << "scrub requesting reserve from osd" << acting[i] << dendl; | ||
2530 | 3223 | vector<OSDOp> scrub(1); | ||
2531 | 3224 | scrub[0].op.op = CEPH_OSD_OP_SCRUB_RESERVE; | ||
2532 | 3225 | sobject_t poid; | ||
2533 | 3226 | eversion_t v; | ||
2534 | 3227 | osd_reqid_t reqid; | ||
2535 | 3228 | MOSDSubOp *subop = new MOSDSubOp(reqid, info.pgid, poid, false, 0, | ||
2536 | 3229 | osd->osdmap->get_epoch(), osd->get_tid(), v); | ||
2537 | 3230 | subop->ops = scrub; | ||
2538 | 3231 | osd->cluster_messenger->send_message(subop, osd->osdmap->get_cluster_inst(acting[i])); | ||
2539 | 3232 | } | ||
2540 | 3233 | } | ||
2541 | 3234 | |||
2542 | 3235 | void PG::scrub_unreserve_replicas() | ||
2543 | 3236 | { | ||
2544 | 3237 | for (unsigned i=1; i<acting.size(); i++) { | ||
2545 | 3238 | dout(10) << "scrub requesting unreserve from osd" << acting[i] << dendl; | ||
2546 | 3239 | vector<OSDOp> scrub(1); | ||
2547 | 3240 | scrub[0].op.op = CEPH_OSD_OP_SCRUB_UNRESERVE; | ||
2548 | 3241 | sobject_t poid; | ||
2549 | 3242 | eversion_t v; | ||
2550 | 3243 | osd_reqid_t reqid; | ||
2551 | 3244 | MOSDSubOp *subop = new MOSDSubOp(reqid, info.pgid, poid, false, 0, | ||
2552 | 3245 | osd->osdmap->get_epoch(), osd->get_tid(), v); | ||
2553 | 3246 | subop->ops = scrub; | ||
2554 | 3247 | osd->cluster_messenger->send_message(subop, osd->osdmap->get_cluster_inst(acting[i])); | ||
2555 | 3248 | } | ||
2556 | 3249 | } | ||
2557 | 3250 | >>>>>>> MERGE-SOURCE | ||
2558 | 2987 | 3251 | ||
2559 | 2988 | /* | 3252 | /* |
2560 | 2989 | * build a (sorted) summary of pg content for purposes of scrubbing | 3253 | * build a (sorted) summary of pg content for purposes of scrubbing |
2561 | 2990 | 3254 | ||
2562 | === modified file 'src/osd/PG.h' | |||
2563 | --- src/osd/PG.h 2011-02-25 15:17:26 +0000 | |||
2564 | +++ src/osd/PG.h 2011-03-28 07:08:46 +0000 | |||
2565 | @@ -904,6 +904,7 @@ | |||
2566 | 904 | void build_scrub_map(ScrubMap &map); | 904 | void build_scrub_map(ScrubMap &map); |
2567 | 905 | void build_inc_scrub_map(ScrubMap &map, eversion_t v); | 905 | void build_inc_scrub_map(ScrubMap &map, eversion_t v); |
2568 | 906 | virtual int _scrub(ScrubMap &map, int& errors, int& fixed) { return 0; } | 906 | virtual int _scrub(ScrubMap &map, int& errors, int& fixed) { return 0; } |
2569 | 907 | <<<<<<< TREE | ||
2570 | 907 | void clear_scrub_reserved(); | 908 | void clear_scrub_reserved(); |
2571 | 908 | void scrub_reserve_replicas(); | 909 | void scrub_reserve_replicas(); |
2572 | 909 | void scrub_unreserve_replicas(); | 910 | void scrub_unreserve_replicas(); |
2573 | @@ -916,6 +917,20 @@ | |||
2574 | 916 | void sub_op_scrub_reserve_reply(class MOSDSubOpReply *op); | 917 | void sub_op_scrub_reserve_reply(class MOSDSubOpReply *op); |
2575 | 917 | void sub_op_scrub_unreserve(class MOSDSubOp *op); | 918 | void sub_op_scrub_unreserve(class MOSDSubOp *op); |
2576 | 918 | void sub_op_scrub_stop(class MOSDSubOp *op); | 919 | void sub_op_scrub_stop(class MOSDSubOp *op); |
2577 | 920 | ======= | ||
2578 | 921 | void clear_scrub_reserved(); | ||
2579 | 922 | void scrub_reserve_replicas(); | ||
2580 | 923 | void scrub_unreserve_replicas(); | ||
2581 | 924 | bool scrub_all_replicas_reserved() const; | ||
2582 | 925 | bool sched_scrub(); | ||
2583 | 926 | |||
2584 | 927 | void sub_op_scrub(class MOSDSubOp *op); | ||
2585 | 928 | void sub_op_scrub_reply(class MOSDSubOpReply *op); | ||
2586 | 929 | void sub_op_scrub_reserve(class MOSDSubOp *op); | ||
2587 | 930 | void sub_op_scrub_reserve_reply(class MOSDSubOpReply *op); | ||
2588 | 931 | void sub_op_scrub_unreserve(class MOSDSubOp *op); | ||
2589 | 932 | void sub_op_scrub_stop(class MOSDSubOp *op); | ||
2590 | 933 | >>>>>>> MERGE-SOURCE | ||
2591 | 919 | 934 | ||
2592 | 920 | public: | 935 | public: |
2593 | 921 | PG(OSD *o, PGPool *_pool, pg_t p, const sobject_t& loid, const sobject_t& ioid) : | 936 | PG(OSD *o, PGPool *_pool, pg_t p, const sobject_t& loid, const sobject_t& ioid) : |
2594 | 922 | 937 | ||
2595 | === modified file 'src/osd/ReplicatedPG.cc' | |||
2596 | --- src/osd/ReplicatedPG.cc 2011-02-25 15:17:26 +0000 | |||
2597 | +++ src/osd/ReplicatedPG.cc 2011-03-28 07:08:46 +0000 | |||
2598 | @@ -493,6 +493,15 @@ | |||
2599 | 493 | case CEPH_OSD_OP_SCRUB_MAP: | 493 | case CEPH_OSD_OP_SCRUB_MAP: |
2600 | 494 | sub_op_scrub_map(op); | 494 | sub_op_scrub_map(op); |
2601 | 495 | return; | 495 | return; |
2602 | 496 | case CEPH_OSD_OP_SCRUB_RESERVE: | ||
2603 | 497 | sub_op_scrub_reserve(op); | ||
2604 | 498 | return; | ||
2605 | 499 | case CEPH_OSD_OP_SCRUB_UNRESERVE: | ||
2606 | 500 | sub_op_scrub_unreserve(op); | ||
2607 | 501 | return; | ||
2608 | 502 | case CEPH_OSD_OP_SCRUB_STOP: | ||
2609 | 503 | sub_op_scrub_stop(op); | ||
2610 | 504 | return; | ||
2611 | 496 | } | 505 | } |
2612 | 497 | } | 506 | } |
2613 | 498 | 507 | ||
2614 | @@ -508,6 +517,16 @@ | |||
2615 | 508 | // continue peer recovery | 517 | // continue peer recovery |
2616 | 509 | sub_op_push_reply(r); | 518 | sub_op_push_reply(r); |
2617 | 510 | return; | 519 | return; |
2618 | 520 | <<<<<<< TREE | ||
2619 | 521 | |||
2620 | 522 | case CEPH_OSD_OP_SCRUB_RESERVE: | ||
2621 | 523 | sub_op_scrub_reserve_reply(r); | ||
2622 | 524 | ======= | ||
2623 | 525 | |||
2624 | 526 | case CEPH_OSD_OP_SCRUB: | ||
2625 | 527 | sub_op_scrub_reply(r); | ||
2626 | 528 | >>>>>>> MERGE-SOURCE | ||
2627 | 529 | return; | ||
2628 | 511 | 530 | ||
2629 | 512 | case CEPH_OSD_OP_SCRUB_RESERVE: | 531 | case CEPH_OSD_OP_SCRUB_RESERVE: |
2630 | 513 | sub_op_scrub_reserve_reply(r); | 532 | sub_op_scrub_reserve_reply(r); |
2631 | @@ -521,6 +540,7 @@ | |||
2632 | 521 | 540 | ||
2633 | 522 | bool ReplicatedPG::snap_trimmer() | 541 | bool ReplicatedPG::snap_trimmer() |
2634 | 523 | { | 542 | { |
2635 | 543 | assert(is_primary() && is_clean()); | ||
2636 | 524 | lock(); | 544 | lock(); |
2637 | 525 | if (!(is_primary() && is_clean() && is_active())) { | 545 | if (!(is_primary() && is_clean() && is_active())) { |
2638 | 526 | unlock(); | 546 | unlock(); |
2639 | @@ -1654,8 +1674,14 @@ | |||
2640 | 1654 | assert(0); | 1674 | assert(0); |
2641 | 1655 | } | 1675 | } |
2642 | 1656 | } else { //we got our context, let's use it to do the rollback! | 1676 | } else { //we got our context, let's use it to do the rollback! |
2643 | 1677 | <<<<<<< TREE | ||
2644 | 1657 | sobject_t& rollback_to_sobject = rollback_to->obs.oi.soid; | 1678 | sobject_t& rollback_to_sobject = rollback_to->obs.oi.soid; |
2645 | 1658 | if (ctx->clone_obc && *ctx->clone_obc->obs.oi.snaps.rbegin() <= snapid) { | 1679 | if (ctx->clone_obc && *ctx->clone_obc->obs.oi.snaps.rbegin() <= snapid) { |
2646 | 1680 | ======= | ||
2647 | 1681 | sobject_t& rollback_to_sobject = rollback_to->obs.oi.soid; | ||
2648 | 1682 | if (ctx->clone_obc && | ||
2649 | 1683 | (ctx->clone_obc->obs.oi.soid.snap == snapid)) { | ||
2650 | 1684 | >>>>>>> MERGE-SOURCE | ||
2651 | 1659 | //just cloned the rollback target, we don't need to do anything! | 1685 | //just cloned the rollback target, we don't need to do anything! |
2652 | 1660 | } else { | 1686 | } else { |
2653 | 1661 | /* 1) Delete current head | 1687 | /* 1) Delete current head |