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