Merge lp:~smb/ubuntu/natty/e2fsprogs/branch into lp:ubuntu/natty/e2fsprogs

Proposed by Stefan Bader on 2010-12-13
Status: Merged
Merge reported by: Daniel Holbach
Merged at revision: not available
Proposed branch: lp:~smb/ubuntu/natty/e2fsprogs/branch
Merge into: lp:ubuntu/natty/e2fsprogs
Diff against target: 769 lines (+112/-400)
16 files modified
README.subset (+0/-15)
RELEASE-NOTES (+2/-2)
TODO (+0/-277)
debian/changelog (+23/-0)
debian/control (+1/-2)
debian/control.in (+1/-2)
debian/e2fsprogs.shlibs.local (+0/-2)
debian/rules (+19/-8)
e2fsck/Makefile.pq (+0/-9)
e2fsck/pass1.c (+1/-1)
lib/ext2fs/Makefile.pq (+0/-49)
lib/ext2fs/ext2_fs.h (+18/-1)
lib/ext2fs/fiemap.h (+0/-2)
misc/tune2fs.c (+47/-9)
resize/Makefile.pq (+0/-11)
util/Makefile.pq (+0/-10)
To merge this branch: bzr merge lp:~smb/ubuntu/natty/e2fsprogs/branch
Reviewer Review Type Date Requested Status
Daniel Holbach Disapprove on 2010-12-21
Ubuntu branches 2010-12-13 Pending
Review via email: mp+43541@code.launchpad.net

Description of the change

This is the same code as Lorenzo prepared in bug #681418 (merge of current Debian) with just another vcs-git removed and the intermediate upload added to the changelog.

To post a comment you must log in.
Daniel Holbach (dholbach) wrote :

Thanks for your work on this.

As we're very likely to get all the changes in the next upstream release, I'll reject this merge proposal for now.

review: Disapprove
Daniel Holbach (dholbach) wrote :

(See bug 681418 for more info.)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== removed file 'README.subset'
2--- README.subset 2009-04-29 18:19:46 +0000
3+++ README.subset 1970-01-01 00:00:00 +0000
4@@ -1,15 +0,0 @@
5-This distribution contains a subset of the e2fsprogs package; it
6-contains the base libraries (ss, et, uuid, blkid) which may be used by
7-other non-ext2-related applications.
8-
9-This may be useful for non-Linux operating systems that need these
10-libraries for GNOME, but who do not need the ext2/ext3 filesystem
11-utilities.
12-
13-The full e2fsprogs distributions can be found at the e2fsprogs web
14-page, which is:
15-
16- http://e2fsprogs.sourceforge.net
17-
18-In case of bugs in these libraries, please contact Ted Ts'o at
19-tytso@mit.edu or tytso@alum.mit.edu.
20
21=== modified file 'RELEASE-NOTES'
22--- RELEASE-NOTES 2010-06-07 15:49:29 +0000
23+++ RELEASE-NOTES 2010-12-13 17:21:59 +0000
24@@ -1,5 +1,5 @@
25-E2fsprogs 1.41.12 (May 17, 2010) (Up to commit 517be2d)
26-=======================================================
27+E2fsprogs 1.41.12 (May 17, 2010)
28+================================
29
30 Mke2fs now gives a correct error message if the external journal
31 device is not found. (Addresses Red Hat Bug #572935)
32
33=== removed file 'TODO'
34--- TODO 2009-04-29 18:19:46 +0000
35+++ TODO 1970-01-01 00:00:00 +0000
36@@ -1,277 +0,0 @@
37-Need to process the bad block inode *before* doing the inode scan.
38-
39-Also check to see if the first block of the inode table is not on the
40-bad block scan, and fix that. We need to check for an inaccurate
41-blocks, and fix them before we start doing anything else with the
42-filesystem!
43-
44----------------------------------------------------
45-User request:
46-
47-BTW: Could you please add some sort of deleted and possibly corrupted file
48- and inode list to e2fsck report. There should be filenames deleted
49- from directory inodes, files with duplicate blocks e.t.c.
50- It's pretty annoying to filter this information from e2fsck output
51- by hand :-
52-
53-------------------------------------------
54-
55-Add a "answer Yes always to this class of question" response.
56-
57-----------------------------------
58-
59-ext2fs_flush() should return a different error message for primary
60-versus backup superblock flushing, so that mke2fs can print an
61-appropriate error message.
62-
63----------------------------------
64-Date: Mon, 08 Mar 1999 21:46:14 +0100
65-From: Sergio Polini <s.polini@mclink.it>
66-
67-
68-I'm reading the sorce code of e2fsck 1.14.
69-In pass2.c, lines 352-357, I read:
70-
71-if ((dirent->name_len & 0xFF) > EXT2_NAME_LEN) {
72- if (fix_problem(ctx, PR_2_FILENAME_LONG, &cd->pctx)) {
73- dirent->name_len = EXT2_NAME_LEN;
74- dir_modified++;
75- }
76-}
77-
78-I think that I'll never see any messages about too long filenames,
79-because "whatever & 0xFF" can never be "> 0xFF".
80-Am I wrong?
81---------------------------------------
82-
83-Add chmod command to debugfs.
84-
85-------------------------------------------
86-
87-Date: Tue, 18 Jan 2000 17:54:53 -0800 (PST)
88-From: Alan Blanchard <alan@abraxas.to>
89-To: tytso@MIT.EDU
90-Subject: DEBUGFS - thanks and a feature idea
91-Content-Type: TEXT/PLAIN; charset=US-ASCII
92-
93-Theodore:
94-
95-First, let me thank you for writing debugfs. Recently, my Linux box
96-(RH 6.0, 400 MHz PIII, on a DSL line) was hacked into. The intruder did
97-an "rm -Rf" on a 34 GB drive with about 5GB of data on it. I was able to
98-restore essentially the entire thing with debugfs and a bit of C code and Perl.
99-Actually, I could have done the entire thing with debugfs and Perl, but I
100-thought it would be too slow.
101-
102-During this exercise, I noticed that one small feature was lacking that would
103-have made my job a bit easier. The length of a deleted directory is
104-reported as 0, hence debugfs won't dump the contents of the directory to a
105-file using the "dump" command. The only thing that saved me was that the
106-list of disk blocks is not zeroed out. I was able to dump the contents of the
107-directories by using debugfs to get the relevant block numbers, then
108-using dd to get the actual data.
109-
110-If debugfs had a feature where it ignored the size of a directory reported by
111-the inode and instead just dumped all the blocks, it would have facilited
112-things a bit. This seems like a very easy feature to add.
113-
114-Again, thanks for writing debugfs (and all the other Linux stuff you've written!).
115-
116-Cheers,
117-Alan Blanchard
118-alan@abraxas.to
119-
120-
121--------------------------------------------------------------------
122-
123-Date: Fri, 21 Jan 2000 14:07:12 -0800
124-From: "H. Peter Anvin" <hpa@www.transmeta.com>
125-Subject: mkfs -cc and fsck -c
126-
127-b) An option to mkfs to zero the partition. Yes, it can be done with
128-dd, but it would be a nicer way of doing it.
129-
130-------------------------------------------------------------------
131-
132-Add support for in ext2fs_block_iterate() for a returning the
133-compressed flag blocks to block_iterate. Change default to not return
134-EXT2_COMPRESSED_BLKADDR. Change e2fsck to pass this flag in.
135-
136-(The old compression patches did this by default all the time, which
137-is bad, since it meant e2fsck never saw the EXT2_COMPRESSED_BLKADDR
138-flagword.
139-
140-------------------------------------------------------------
141-
142-E2fsck should offer to clear all the blocks in an indirect block, not
143-the entire inode, so there's better recovery for when an indirect
144-block gets trashed.
145-
146-
147--------------------------------------------------------------
148-
149-From: Yann Dirson - LOGATIQUE <Yann.Dirson@France.Sun.COM>
150-Date: Thu, 2 Mar 2000 13:52:13 +0100 (MET)
151-
152-During my experiments on the broken system, I noticed the following in
153-the badblocks program (which I'm aware is not designed for IDE drives)
154-- I'd probably have already fixed them if my home system was up :(
155-
156-* the syntax summary documents 2nd arg as blocks_count, which should
157-probably read something like end_count.
158-
159-* testing past end of device is not detected, and lists those blocks
160-as bad, whereas they simply do not exist.
161-
162-
163-I think I'll probably add a "max count" option to findsuper(8), so
164-that I do not have to wait for the whole disk to be scanned when the
165-system had to be launched with "init=/bin/sh", in which case Ctrl-[CZ]
166-and friends appear to be absolutely ignored.
167-
168-
169-Somewhat unrelated, I just noticed the
170-http://web.mit.edu/tytso/www/linux/ext2.html could be updated:
171-
172-- could mention SGI xfs (http://oss.sgi.com/projects/xfs/ - they just
173- release 0.03 snapshot)
174-
175-----------------------------------------------------------------
176-
177-Return-Path: <tytso@MIT.EDU>
178-Date: Thu, 10 Feb 2000 13:20:14 -0500
179-From: "Theodore Y. Ts'o" <tytso@MIT.EDU>
180-To: R.E.Wolff@BitWizard.nl
181-In-Reply-To: Rogier Wolff's message of Thu, 10 Feb 2000 08:46:30 +0100 (MET),
182- <200002100746.IAA24573@cave.bitwizard.nl>
183-Subject: Re: e2fsck request for enhancement.
184-Phone: (781) 391-3464
185-
186- Date: Thu, 10 Feb 2000 08:46:30 +0100 (MET)
187- From: R.E.Wolff@BitWizard.nl (Rogier Wolff)
188-
189- Lately, while trying to recover a broken disk, my system froze (twice,
190- until I tried something else) while copying the disk.
191-
192- So I had a file of about 50Mb that was growing frantically at the
193- moment of the crash.
194-
195- e2fsck, then finds an indirect block that is completely bogus. It
196- starts by asking me if it's ok to clear a few of the referenced
197- blocks. I say yes. Then it comes to the conclusion:
198-
199- too many invalid blocks. Clear inode?
200-
201- and then I get the option to delete the whole file. Not to truncate
202- the file to a "working" size.
203-
204-
205- I'd MUCH rather have e2fsck say something like:
206-
207- inode 1234 references an invalid block 134345454. Hmm.
208- inode 1234 references 567 out of 50176 invalid blocks,
209- all near the end. Truncate file to 49152 blocks?
210-
211- Here you can see that of the 1024 blocks near the end of the file,
212- only 567 were detected as invalid. However now 48Mb of the file will
213- be recovered, instead of thrown away.
214-
215-That's a good point. Actually, the right thing is for e2fsck to offer
216-to clear all of the bad blocks in a particular indirect block. I don't
217-know how hard it would be to do that, but I'll put it on my e2fsprogs
218-TODO list.
219-
220- - Ted
221-
222----------------------------------------------------------------
223-From e2fsprogs Debian TODO file as of 1.10-13.
224-
225-* Maybe make -dbg packages. Look at how others do it.
226-
227----------------------------------------------------------------
228-
229-Add --lba option to debian icheck command, and have ways of making it
230-easier to translate LBA to filesystem block numbers.
231-
232--------------------------------------------------------
233-
234-
235-
236-List of projects for e2fsprogs:
237-
238-
239-1) Make debugfs's "ncheck <inode>" command list all of the pathnames
240-to an inode, not just only the first link to the inode which is found.
241-(A good "intro to libext2fs programming interfaces project)
242-
243- Difficulty: Low Priority: Low
244-
245-2) Use a code coverage tool such as Rational's PureCoverage to see
246-what kind of code coverage we have for e2fsck, and try to add test
247-cases to increase the code coverage for e2fsck.
248-
249- Difficulty: Medium Priorty: Low
250-
251-3) Use a code coverage tool such as Rational's PureCoverage to see
252-what kind of code coverage we have for resize2fs, and try to add test
253-cases to increase the code coverage for resize2fs.
254-
255- Difficulty: Medium Priorty: Medium
256-
257-4) Create a new I/O manager (i.e., test_io.c, unix_io.c, et.al.) which
258-layers on top of an existing I/O manager which provides copy-on-write
259-functionality. This COW I/O manager takes will take two open I/O
260-managers, call them "base" and "changed". The "base" I/O manager is
261-opened read/only, so any changes are written instead to the "changed"
262-I/O manager, in a compact, non-sparse format containing the intended
263-modification to the "base" filesystem.
264-
265-This will allow resize2fs to figure out what changes need to made to
266-extend a filesystem, or expand the size of inodes in the inode table,
267-and the changes can be pushed the filesystem in one fell swoop. (If
268-the system crashes; the program which runs the "changed" file can be
269-re-run, much like a journal replay. My assumption is that the COW
270-file will contain the filesystem UUID in a the COW superblock, and the
271-COW file will be stored in some place such as /var/state/e2fsprogs,
272-with an init.d file to automate the replay so we can recover cleanly
273-from a crash during the resize2fs process.)
274-
275- Difficulty: Medium Priority: Medium
276-
277-5) Create a new I/O manager (i.e., test_io.c, unix_io.c, et.al.) which
278-layers on top of an existing I/O manager which provides an "undo"
279-functionality. This undo I/O manager takes will take two open I/O
280-managers, call them "base" and "undo". The "base" I/O manager is be
281-opened read/write, and when any writes are sent to the I/O manager,
282-the I/O manager will check the "undo" I/O manager, using a file format
283-identical to the one found in (5) above.
284-
285-This is useful for allowing e2fsck to create an "undo" file, which
286-would make things like "e2fsck -y" much safer.
287-
288- Difficulty: Low (once 5 is done) Priority: Low
289-
290-6) Modify resize2fs so that it can relocate and reorganize the
291-filesystem in the following ways: (1) increase the inode size, so that
292-an existing filesystem can use the EA-in-inode kernel patch, (2)
293-reserve blocks in the resize inode to allow for on-line resizing. Use
294-the COW I/O manager described in (5) in order to provide robustness in
295-case of a crash during the resize/reorganization operation.
296-
297- Difficulty: High Priority: Medium
298-
299-7) Review the EA-in-inode patches to e2fsck for correctness/code
300-cleanliness. (I will probably have to do this myself -- Ted)
301-
302- Difficulty: High Priorty: Medium
303-
304-8) Add support for extent maps to e2fsprogs. I need to review the
305-extent maps first/in parallel.
306-
307- Difficulty: High Priority: Medium
308-
309-----------------------------------
310-
311-Need to deal with the case where the resize inode overlaps with the
312-bad blocks inode.
313-
314
315=== modified file 'debian/changelog'
316--- debian/changelog 2010-12-13 12:57:53 +0000
317+++ debian/changelog 2010-12-13 17:21:59 +0000
318@@ -1,3 +1,26 @@
319+e2fsprogs (1.41.12-2ubuntu1) natty; urgency=low
320+
321+ * Merge from debian unstable (LP: #681418), remaining changes:
322+ - debian/control: Do not build-depend on dietlibc-dev, which is universe.
323+ - debian/rules:
324+ + Do now allow pkg-create-dbgsym to operate on this package.
325+ + Build with -O2 on powerpc to avoid a suspected toolchain bug.
326+ - debian/e2fsprogs.preinst: Do not include /etc/e2fsck.conf and remove on
327+ upgrade.
328+ - The -p switch for resize2fs is meant for an offline resize operation which
329+ is done completely at the userspace. Changed the documentation to suggest
330+ an "offline" operation.
331+
332+ -- Lorenzo De Liso <blackz@ubuntu.com> Thu, 25 Nov 2010 15:38:54 +0100
333+
334+e2fsprogs (1.41.12-2) unstable; urgency=high
335+
336+ * Allow tune2fs to set uninit_bg without requiring an fsck
337+ * Fix test in e2fsck to correctly check for EOFBLOCKS files
338+ * Fix dependencies for libuuid and libblkid (Closes: #583551)
339+
340+ -- Theodore Y. Ts'o <tytso@mit.edu> Thu, 03 Jun 2010 09:30:36 -0400
341+
342 e2fsprogs (1.41.12-1ubuntu3) natty; urgency=low
343
344 * No-change upload to reduce changelogs.
345
346=== modified file 'debian/control'
347--- debian/control 2010-03-22 17:48:20 +0000
348+++ debian/control 2010-12-13 17:21:59 +0000
349@@ -1,12 +1,11 @@
350 Source: e2fsprogs
351 Section: admin
352 Priority: required
353-Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
354+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
355 XSBC-Original-Maintainer: Theodore Y. Ts'o <tytso@mit.edu>
356 Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, pkg-config, debhelper (>= 7.0), m4, libblkid-dev (>= 2.16), uuid-dev (>= 2.16)
357 Standards-Version: 3.8.4
358 Homepage: http://e2fsprogs.sourceforge.net
359-Vcs-Git: git://kernel.ubuntu.com/git/e2fsprogs.git
360
361 Package: e2fsck-static
362 Priority: optional
363
364=== modified file 'debian/control.in'
365--- debian/control.in 2010-03-22 17:48:20 +0000
366+++ debian/control.in 2010-12-13 17:21:59 +0000
367@@ -1,7 +1,7 @@
368 Source: e2fsprogs
369 Section: admin
370 Priority: required
371-Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
372+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
373 XSBC-Original-Maintainer: Theodore Y. Ts'o <tytso@mit.edu>
374 ifdef(`UTIL_LINUX_NG',
375 ``Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, pkg-config, debhelper (>= 7.0), m4, libblkid-dev (>= 2.16), uuid-dev (>= 2.16)
376@@ -10,7 +10,6 @@
377 '')dnl
378 Standards-Version: 3.8.4
379 Homepage: http://e2fsprogs.sourceforge.net
380-Vcs-Git: git://kernel.ubuntu.com/git/e2fsprogs.git
381
382 Package: e2fsck-static
383 Priority: optional
384
385=== modified file 'debian/e2fsprogs.shlibs.local'
386--- debian/e2fsprogs.shlibs.local 2004-09-19 09:43:14 +0000
387+++ debian/e2fsprogs.shlibs.local 2010-12-13 17:21:59 +0000
388@@ -1,6 +1,4 @@
389 libcom_err 2 libcomerr2 (>= 1.34-1)
390 libss 2 libss2 (>= 1.34-1)
391-libuuid 1 libuuid1 (>= 1.34-1)
392 libext2fs 2 e2fslibs (= ${Source-Version})
393 libe2p 2 e2fslibs (= ${Source-Version})
394-libblkid 1 libblkid1 (>= 1.34-1)
395
396=== modified file 'debian/rules'
397--- debian/rules 2010-06-07 15:49:29 +0000
398+++ debian/rules 2010-12-13 17:21:59 +0000
399@@ -9,10 +9,15 @@
400
401 # be paranoid
402 export LC_ALL=C
403+
404+# Allow distro-specific behaviour
405+DISTRO :=$(shell sed -ne '/DISTRIB_ID/s/.*=//p' /etc/lsb-release 2>/dev/null || echo Debian)
406+SYS_BLKID_VER := $(shell dpkg-query -W libblkid1 | cut -f 2 | cut -b 1)
407+ifeq ($(SYS_BLKID_VER),2)
408+UTIL_LINUX_NG ?= yes
409+endif
410 # no chance that pkg-create-dbgsym can cope with this package's manual construction of -dbg
411 export NO_PKG_MANGLE=1
412-# always build with libblkid and libuuid from util-linux
413-UTIL_LINUX_NG ?= yes
414
415 # These are used for cross-compiling and for saving the configure script
416 # from having to guess our platform (since we know it already)
417@@ -168,9 +173,17 @@
418 M4_ARGS+=-UUTIL_LINUX_NG
419 endif
420
421+debian-files: debian/control debian/e2fsprogs.shlibs.local
422+
423+mrproper: clean
424+ rm debian/control debian/e2fsprogs.shlibs.local
425+
426 debian/control: debian/control.in debian/rules
427 m4 $(M4_ARGS) < debian/control.in > $@
428
429+debian/e2fsprogs.shlibs.local: debian/e2fsprogs.shlibs.local.in
430+ m4 $(M4_ARGS) < debian/e2fsprogs.shlibs.local.in > $@
431+
432 ${CFGSTDSTAMP}:
433 dh_testdir
434
435@@ -243,7 +256,7 @@
436 mkdir -p ${STAMPSDIR}
437 touch ${CFGSTATICSTAMP}
438
439-build: debian/control build-std build-bf $(BUILD_STATIC)
440+build: build-std build-bf $(BUILD_STATIC)
441
442 build-std: ${BUILDSTDSTAMP}
443 ${BUILDSTDSTAMP}: ${CFGSTDSTAMP}
444@@ -283,7 +296,7 @@
445 $(MAKE) -C ${staticbuilddir}/e2fsck all e2fsck.static
446 touch ${BUILDSTATICSTAMP}
447
448-clean: debian/control
449+clean:
450 dh_testdir
451 rm -rf ${STAMPSDIR}
452 [ ! -f ${stdbuilddir}/Makefile ] || $(MAKE) -C ${stdbuilddir} distclean
453@@ -322,7 +335,7 @@
454 ln -s et/com_err.h ${tmpdir}/usr/include
455
456 dh_movefiles
457- test -z `find ${tmpdir} -type f`
458+ test -z "`find ${tmpdir} -type f`"
459
460 # specially-built MIPS libs
461 ifneq ($(ismips),)
462@@ -455,8 +468,6 @@
463 -pe2fsprogs-dbg -pe2fslibs-dbg \
464 -plibcomerr2-dbg -plibss2-dbg
465 ifneq ($(UTIL_LINUX_NG),yes)
466- DH_OPTIONS= dh_installchangelogs -plibblkid${BLKID_SOVERSION} \
467- -plibblkid1-dbg
468 DH_OPTIONS= dh_installchangelogs -plibuuid${UUID_SOVERSION} \
469 -puuid-dev -puuid-runtime -puuid-runtime-dbg -plibuuid1-dbg \
470 -plibblkid${BLKID_SOVERSION} -plibblkid1-dbg
471@@ -602,4 +613,4 @@
472
473 binary: binary-indep binary-arch
474
475-.PHONY: binary binary-arch binary-indep clean checkroot
476+.PHONY: binary binary-arch binary-indep clean checkroot mrproper debian-files
477
478=== removed file 'e2fsck/Makefile.pq'
479--- e2fsck/Makefile.pq 2009-04-29 18:19:46 +0000
480+++ e2fsck/Makefile.pq 1970-01-01 00:00:00 +0000
481@@ -1,9 +0,0 @@
482-TOPSRC=..
483-LIBNAME=E2FSCK.LIB
484-OBJFILE=E2FSCK.LST
485-
486-OBJS= e2fsck.obj super.obj pass1.obj pass2.obj pass3.obj \
487- pass4.obj pass5.obj dirinfo.obj
488-
489-!include $(TOPSRC)\powerquest\MCONFIG
490-
491
492=== modified file 'e2fsck/pass1.c'
493--- e2fsck/pass1.c 2010-06-07 15:49:29 +0000
494+++ e2fsck/pass1.c 2010-12-13 17:21:59 +0000
495@@ -2013,7 +2013,7 @@
496 * doesn't need to be.
497 */
498 if ((inode->i_flags & EXT4_EOFBLOCKS_FL) &&
499- (size <= (((__u64)pb.last_block + 1) * fs->blocksize))) {
500+ (size >= (((__u64)pb.last_block + 1) * fs->blocksize))) {
501 pctx->blkcount = pb.last_block;
502 if (fix_problem(ctx, PR_1_EOFBLOCKS_FL_SET, pctx)) {
503 inode->i_flags &= ~EXT4_EOFBLOCKS_FL;
504
505=== removed file 'lib/ext2fs/Makefile.pq'
506--- lib/ext2fs/Makefile.pq 2009-04-29 18:19:46 +0000
507+++ lib/ext2fs/Makefile.pq 1970-01-01 00:00:00 +0000
508@@ -1,49 +0,0 @@
509-TOPSRC=..\..
510-LIBNAME=EXT2.LIB
511-OBJFILE=EXT2.LST
512-
513-OBJS= alloc.obj \
514- alloc_tables.obj \
515- badblocks.obj \
516- bb_compat.obj \
517- bb_inode.obj \
518- bitmaps.obj \
519- bitops.obj \
520- block.obj \
521- bmap.obj \
522- bmove.obj \
523- check_desc.obj \
524- closefs.obj \
525- cmp_bitmaps.obj \
526- dblist.obj \
527- dblist_dir.obj \
528- dirblock.obj \
529- dir_iterate.obj \
530- dupfs.obj \
531- expanddir.obj \
532- fileio.obj \
533- freefs.obj \
534- get_pathname.obj \
535- icount.obj \
536- initialize.obj \
537- inline.obj \
538- inode.obj \
539- ismounted.obj \
540- link.obj \
541- lookup.obj \
542- mkdir.obj \
543- namei.obj \
544- native.obj \
545- newdir.obj \
546- openfs.obj \
547- read_bb.obj \
548- read_bb_file.obj \
549- rs_bitmap.obj \
550- rw_bitmaps.obj \
551- swapfs.obj \
552- unlink.obj \
553- valid_blk.obj \
554- version.obj
555-
556-!include $(TOPSRC)\powerquest\MCONFIG
557-
558
559=== modified file 'lib/ext2fs/ext2_fs.h'
560--- lib/ext2fs/ext2_fs.h 2010-03-22 17:48:20 +0000
561+++ lib/ext2fs/ext2_fs.h 2010-12-13 17:21:59 +0000
562@@ -50,6 +50,7 @@
563 #define EXT2_UNDEL_DIR_INO 6 /* Undelete directory inode */
564 #define EXT2_RESIZE_INO 7 /* Reserved group descriptors inode */
565 #define EXT2_JOURNAL_INO 8 /* Journal inode */
566+#define EXT2_EXCLUDE_INO 9 /* The "exclude" inode, for snapshots */
567
568 /* First non-reserved inode for old ext2 filesystems */
569 #define EXT2_GOOD_OLD_FIRST_INO 11
570@@ -273,7 +274,11 @@
571 #define EXT2_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/
572 #define EXT4_HUGE_FILE_FL 0x00040000 /* Set to each huge file */
573 #define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
574+#define EXT4_EA_INODE_FL 0x00200000 /* Inode used for large EA */
575 #define EXT4_EOFBLOCKS_FL 0x00400000 /* Blocks allocated beyond EOF */
576+#define EXT4_SNAPFILE_FL 0x01000000 /* Inode is a snapshot */
577+#define EXT4_SNAPFILE_DELETED_FL 0x04000000 /* Snapshot is being deleted */
578+#define EXT4_SNAPFILE_SHRUNK_FL 0x08000000 /* Snapshot shrink has completed */
579 #define EXT2_RESERVED_FL 0x80000000 /* reserved for ext2 lib */
580
581 #define EXT2_FL_USER_VISIBLE 0x004BDFFF /* User visible flags */
582@@ -462,6 +467,9 @@
583 #define EXT2_FLAGS_SIGNED_HASH 0x0001 /* Signed dirhash in use */
584 #define EXT2_FLAGS_UNSIGNED_HASH 0x0002 /* Unsigned dirhash in use */
585 #define EXT2_FLAGS_TEST_FILESYS 0x0004 /* OK for use on development code */
586+#define EXT2_FLAGS_IS_SNAPSHOT 0x0010 /* This is a snapshot image */
587+#define EXT2_FLAGS_FIX_SNAPSHOT 0x0020 /* Snapshot inodes corrupted */
588+#define EXT2_FLAGS_FIX_EXCLUDE 0x0040 /* Exclude bitmaps corrupted */
589
590 /*
591 * Mount flags
592@@ -581,7 +589,12 @@
593 __u8 s_reserved_char_pad;
594 __u16 s_reserved_pad; /* Padding to next 32bits */
595 __u64 s_kbytes_written; /* nr of lifetime kilobytes written */
596- __u32 s_reserved[160]; /* Padding to the end of the block */
597+ __u32 s_snapshot_inum; /* Inode number of active snapshot */
598+ __u32 s_snapshot_id; /* sequential ID of active snapshot */
599+ __u64 s_snapshot_r_blocks_count; /* reserved blocks for active
600+ snapshot's future use */
601+ __u32 s_snapshot_list; /* inode number of the head of the on-disk snapshot list */
602+ __u32 s_reserved[155]; /* Padding to the end of the block */
603 };
604
605 /*
606@@ -627,6 +640,7 @@
607 #define EXT2_FEATURE_COMPAT_RESIZE_INODE 0x0010
608 #define EXT2_FEATURE_COMPAT_DIR_INDEX 0x0020
609 #define EXT2_FEATURE_COMPAT_LAZY_BG 0x0040
610+#define EXT2_FEATURE_COMPAT_EXCLUDE_INODE 0x0080
611
612 #define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001
613 #define EXT2_FEATURE_RO_COMPAT_LARGE_FILE 0x0002
614@@ -635,6 +649,7 @@
615 #define EXT4_FEATURE_RO_COMPAT_GDT_CSUM 0x0010
616 #define EXT4_FEATURE_RO_COMPAT_DIR_NLINK 0x0020
617 #define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE 0x0040
618+#define EXT4_FEATURE_RO_COMPAT_HAS_SNAPSHOT 0x0080
619
620 #define EXT2_FEATURE_INCOMPAT_COMPRESSION 0x0001
621 #define EXT2_FEATURE_INCOMPAT_FILETYPE 0x0002
622@@ -645,6 +660,8 @@
623 #define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
624 #define EXT4_FEATURE_INCOMPAT_MMP 0x0100
625 #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
626+#define EXT4_FEATURE_INCOMPAT_EA_INODE 0x0400
627+#define EXT4_FEATURE_INCOMPAT_DIRDATA 0x1000
628
629
630 #define EXT2_FEATURE_COMPAT_SUPP 0
631
632=== modified file 'lib/ext2fs/fiemap.h'
633--- lib/ext2fs/fiemap.h 2009-07-11 17:26:16 +0000
634+++ lib/ext2fs/fiemap.h 2010-12-13 17:21:59 +0000
635@@ -11,8 +11,6 @@
636 #ifndef _LINUX_FIEMAP_H
637 #define _LINUX_FIEMAP_H
638
639-#include <linux/types.h>
640-
641 struct fiemap_extent {
642 __u64 fe_logical; /* logical offset in bytes for the start of
643 * the extent from the beginning of the file */
644
645=== modified file 'misc/tune2fs.c'
646--- misc/tune2fs.c 2009-08-25 18:34:46 +0000
647+++ misc/tune2fs.c 2010-12-13 17:21:59 +0000
648@@ -326,14 +326,28 @@
649 ext2fs_mark_super_dirty(fs);
650 }
651
652+static void request_fsck_afterwards(ext2_filsys fs)
653+{
654+ static int requested = 0;
655+
656+ if (requested++)
657+ return;
658+ fs->super->s_state &= ~EXT2_VALID_FS;
659+ printf("\n%s\n", _(please_fsck));
660+ if (mount_flags & EXT2_MF_READONLY)
661+ printf(_("(and reboot afterwards!)\n"));
662+}
663+
664 /*
665 * Update the feature set as provided by the user.
666 */
667 static void update_feature_set(ext2_filsys fs, char *features)
668 {
669 struct ext2_super_block *sb = fs->super;
670+ struct ext2_group_desc *gd;
671+ errcode_t retval;
672 __u32 old_features[3];
673- int type_err;
674+ int i, type_err;
675 unsigned int mask_err;
676
677 #define FEATURE_ON(type, mask) (!(old_features[(type)] & (mask)) && \
678@@ -430,6 +444,36 @@
679 }
680 }
681
682+ if (FEATURE_ON(E2P_FEATURE_RO_INCOMPAT,
683+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) {
684+ gd = fs->group_desc;
685+ for (i = 0; i < fs->group_desc_count; i++, gd++) {
686+ gd->bg_itable_unused = 0;
687+ gd->bg_flags = EXT2_BG_INODE_ZEROED;
688+ ext2fs_group_desc_csum_set(fs, i);
689+ }
690+ fs->flags &= ~EXT2_FLAG_SUPER_ONLY;
691+ }
692+
693+ if (FEATURE_OFF(E2P_FEATURE_RO_INCOMPAT,
694+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) {
695+ gd = fs->group_desc;
696+ for (i = 0; i < fs->group_desc_count; i++, gd++) {
697+ if ((gd->bg_flags & EXT2_BG_INODE_ZEROED) == 0) {
698+ /*
699+ * XXX what we really should do is zap
700+ * uninitialized inode tables instead.
701+ */
702+ request_fsck_afterwards(fs);
703+ break;
704+ }
705+ gd->bg_itable_unused = 0;
706+ gd->bg_flags = 0;
707+ gd->bg_checksum = 0;
708+ }
709+ fs->flags &= ~EXT2_FLAG_SUPER_ONLY;
710+ }
711+
712 if (sb->s_rev_level == EXT2_GOOD_OLD_REV &&
713 (sb->s_feature_compat || sb->s_feature_ro_compat ||
714 sb->s_feature_incompat))
715@@ -437,8 +481,6 @@
716
717 if (FEATURE_CHANGED(E2P_FEATURE_RO_INCOMPAT,
718 EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER) ||
719- FEATURE_CHANGED(E2P_FEATURE_RO_INCOMPAT,
720- EXT4_FEATURE_RO_COMPAT_GDT_CSUM) ||
721 FEATURE_OFF(E2P_FEATURE_RO_INCOMPAT,
722 EXT4_FEATURE_RO_COMPAT_HUGE_FILE) ||
723 FEATURE_CHANGED(E2P_FEATURE_INCOMPAT,
724@@ -446,12 +488,8 @@
725 FEATURE_CHANGED(E2P_FEATURE_COMPAT,
726 EXT2_FEATURE_COMPAT_RESIZE_INODE) ||
727 FEATURE_OFF(E2P_FEATURE_RO_INCOMPAT,
728- EXT2_FEATURE_RO_COMPAT_LARGE_FILE)) {
729- sb->s_state &= ~EXT2_VALID_FS;
730- printf("\n%s\n", _(please_fsck));
731- if (mount_flags & EXT2_MF_READONLY)
732- printf(_("(and reboot afterwards!)\n"));
733- }
734+ EXT2_FEATURE_RO_COMPAT_LARGE_FILE))
735+ request_fsck_afterwards(fs);
736
737 if ((old_features[E2P_FEATURE_COMPAT] != sb->s_feature_compat) ||
738 (old_features[E2P_FEATURE_INCOMPAT] != sb->s_feature_incompat) ||
739
740=== removed file 'resize/Makefile.pq'
741--- resize/Makefile.pq 2009-04-29 18:19:46 +0000
742+++ resize/Makefile.pq 1970-01-01 00:00:00 +0000
743@@ -1,11 +0,0 @@
744-TOPSRC=..
745-LIBNAME=RESIZE.LIB
746-OBJFILE=RESIZE.LST
747-
748-OBJS= extent.obj \
749- ext2_block_move.obj \
750- ext2_inode_move.obj \
751- resize2fs.obj
752-
753-!include $(TOPSRC)\powerquest\MCONFIG
754-
755
756=== removed file 'util/Makefile.pq'
757--- util/Makefile.pq 2009-04-29 18:19:46 +0000
758+++ util/Makefile.pq 1970-01-01 00:00:00 +0000
759@@ -1,10 +0,0 @@
760-TOPSRC=..
761-
762-!include $(TOPSRC)\powerquest\MCONFIG
763-
764-ALL:: libecho.exe
765-
766-libecho.exe: libecho.c
767-
768-clean::
769- $(RM) libecho.exe

Subscribers

People subscribed via source and target branches

to all changes: