Re: [GIT PULL] ext4 update

2008-01-29 Thread Theodore Tso
On Tue, Jan 29, 2008 at 10:54:03PM +0100, Jan Engelhardt wrote:
> 
> On Jan 29 2008 07:53, Theodore Tso wrote:
> >
> >>fwiw, diffstat is confused by git's diff output; you need to use
> >>'diffstat -p1'
> 
> I am seeing normal behavior:
>
> 22:52 sovereign:~/linux > git diff HEAD | diffstat

That's because you are doing a diff stat of changes that haven't been
checked in yet.  I was doing a "git log -p origin.. | diffstat -p1",
and in that incantation you definitely do need the -p1 to diffstat.

  - Ted
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


2.6.24-git6-ext4-1 patchset released

2008-01-29 Thread Theodore Ts'o

I've just released 2.6.24-git6-ext4-1.  It removes the patches that have
been pulled into mainline by Linus, and adds the unlocked ioctl patches
from Andi Kleen, and Eric's patch to allow the root inode to use
in-inode EA's.

As a git tree:

git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git 2.6.24-git6-ext4-1
http://git.kernel.org/?p=linux/kernel/git/tytso/ext4.git;a=shortlog;h=2.6.24-git6-ext4-1

As a patchset:

ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/ext4-patches/2.6.24-git6-ext4-1

- Ted

What's now in the ext4 tree:

Akira Fujita (4):
  ext4: online defrad header file changes
  ext4: online defrag-- Allocate new contiguous blocks with mballoc
  ext4: online defrag -- Move the file data to the new blocks
  Free space fragmentation functions

Alex Tomas (2):
  vfs: add basic delayed allocation support
  ext4: Add basic delayed allocation support

Andi Kleen (7):
  Convert ext2 over to use unlocked_ioctl
  Remove incorrect BKL comment in ext2
  Convert ext3 to use unlocked_ioctl v2
  ext3: Remove incorrect BKL comment
  Remove incorrect comment refering to lock_kernel() from jbd/jbd2
  Convert ext4 to use unlocked_ioctl v2
  Remove incorrect BKL comments in ext4

Aneesh Kumar K.V (2):
  ext4: Enable delalloc and mballoc by default.
  ext4: Show delalloc options

Eric Sandeen (1):
  allow in-inode EAs on ext4 root inode

Mingming Cao (2):
  jbd: blocks reservation fix for large block support
  jbd2: blocks reservation fix for large block support

Theodore Ts'o (2):
  patch test-filesys-flag.patch
  ext4: New inode allocation for FLEX_BG meta-data groups.

 fs/buffer.c |3 
 fs/ext2/dir.c   |2 
 fs/ext2/ext2.h  |3 
 fs/ext2/file.c  |4 
 fs/ext2/inode.c |1 
 fs/ext2/ioctl.c |   12 
 fs/ext3/dir.c   |4 
 fs/ext3/file.c  |2 
 fs/ext3/ioctl.c |   12 
 fs/ext4/Makefile|2 
 fs/ext4/balloc.c|   28 
 fs/ext4/defrag.c| 2206 
 fs/ext4/dir.c   |4 
 fs/ext4/extents.c   |   67 -
 fs/ext4/file.c  |2 
 fs/ext4/ialloc.c|   96 +
 fs/ext4/inode.c |  174 ++-
 fs/ext4/ioctl.c |   25 
 fs/ext4/mballoc.c   |7 
 fs/ext4/super.c |   91 +
 fs/jbd/journal.c|7 
 fs/jbd/recovery.c   |2 
 fs/jbd2/journal.c   |7 
 fs/jbd2/recovery.c  |2 
 fs/mpage.c  |  406 +++
 include/linux/ext3_fs.h |3 
 include/linux/ext4_fs.h |  107 +
 include/linux/ext4_fs_extents.h |   22 
 include/linux/ext4_fs_sb.h  |3 
 include/linux/mpage.h   |2 
 30 files changed, 3220 insertions(+), 86 deletions(-)
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] allow in-inode EAs on ext4 root inode

2008-01-29 Thread Theodore Tso
Thanks, I've included this into the ext4 patch queue and into the
2.6.24-git6-ext4-1 tree.

- Ted
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] [0/7] Drop BKL in ext[234] ioctls

2008-01-29 Thread Theodore Tso
On Mon, Jan 28, 2008 at 11:16:09AM +0100, Andi Kleen wrote:
> 
> Remove the BKL from the ext* ioctls.
> 
> This is a slightly updated version of the ext[2-4] patches that hit
> linux-fsdevel earlier.

Thanks, I've included these patches into the ext4 tree, and should
hopefully be pulled into the next -mm tree.

- Ted
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH e2fsprogs] print "mostly-printable" xattr strings in debugfs

2008-01-29 Thread Eric Sandeen
Taking a cue from getfattr... if a string is "mostly"
printable characters, go ahead & print as a string,
and escape what's left over.

so we get:

Extended attributes stored in inode body: 
  selinux = "system_u:object_r:root_t:s0\000" (28)

instead of:

Extended attributes stored in inode body: 
  selinux = "73 79 73 74 65 6d 5f 75 3a 6f 62 6a 65 63 74 5f 72 3a 72 6f 6f 74 
5f 74 3a 73 30 00 " (28)

(selinux includes the trailing null in "len" so it
never prints as a string today)

Signed-off-by: Eric Sandeen <[EMAIL PROTECTED]>
---
 
Index: e2fsprogs-1.40.5/debugfs/debugfs.c
===
--- e2fsprogs-1.40.5.orig/debugfs/debugfs.c
+++ e2fsprogs-1.40.5/debugfs/debugfs.c
@@ -434,19 +434,21 @@ static int list_blocks_proc(ext2_filsys 
 
 static void dump_xattr_string(FILE *out, const char *str, int len)
 {
-   int printable = 1;
+   int printable = 0;
int i;

-   /* check is string printable? */
+   /* check: is string "printable enough?" */
for (i = 0; i < len; i++)
-   if (!isprint(str[i])) {
-   printable = 0;
-   break;
-   }
+   if (isprint(str[i]))
+   printable++;
+
+   if (printable <= len*7/8)
+   printable = 0;
 
for (i = 0; i < len; i++)
if (printable)
-   fprintf(out, "%c", (unsigned char)str[i]);
+   fprintf(out, isprint(str[i]) ? "%c" : "\\%03o",
+   (unsigned char)str[i]);
else
fprintf(out, "%02x ", (unsigned char)str[i]);
 }

-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PULL] ext4 update

2008-01-29 Thread Jan Engelhardt

On Jan 29 2008 07:53, Theodore Tso wrote:
>
>>fwiw, diffstat is confused by git's diff output; you need to use
>>'diffstat -p1'

I am seeing normal behavior:

22:52 sovereign:~/linux > git status
# On branch dev-pcidata-dvb
# Changes to be committed:
#   (use "git reset HEAD ..." to unstage)
#
#   modified:   drivers/media/dvb/b2c2/flexcop-pci.c
#   modified:   drivers/media/dvb/ttpci/av7110.c
#   modified:   drivers/media/dvb/ttpci/budget-av.c
#   modified:   drivers/media/dvb/ttpci/budget-ci.c
#   modified:   drivers/media/dvb/ttpci/budget-patch.c
#   modified:   drivers/media/dvb/ttpci/budget.c
#   modified:   drivers/media/radio/radio-gemtek-pci.c
#   modified:   drivers/media/radio/radio-maestro.c
#   modified:   drivers/media/radio/radio-maxiradio.c
#   modified:   drivers/media/video/bt8xx/bttv-driver.c
#   modified:   drivers/media/video/cafe_ccic.c
#   modified:   drivers/media/video/cx23885/cx23885-core.c
#   modified:   drivers/media/video/cx88/cx88-mpeg.c
#   modified:   drivers/media/video/cx88/cx88-video.c
#   modified:   drivers/media/video/dpc7146.c
#   modified:   drivers/media/video/hexium_gemini.c
#   modified:   drivers/media/video/hexium_orion.c
#   modified:   drivers/media/video/meye.c
#   modified:   drivers/media/video/mxb.c
#   modified:   drivers/media/video/saa7134/saa7134-cards.c
#   modified:   drivers/media/video/stradis.c
#   modified:   drivers/media/video/zoran_card.c
#
22:52 sovereign:~/linux > git diff HEAD | diffstat
 dvb/b2c2/flexcop-pci.c|2 +-
 dvb/ttpci/av7110.c|4 ++--
 dvb/ttpci/budget-av.c |2 +-
 dvb/ttpci/budget-ci.c |4 ++--
 dvb/ttpci/budget-patch.c  |2 +-
 dvb/ttpci/budget.c|2 +-
 radio/radio-gemtek-pci.c  |3 +--
 radio/radio-maestro.c |2 +-
 radio/radio-maxiradio.c   |2 +-
 video/bt8xx/bttv-driver.c |2 +-
 video/cafe_ccic.c |2 +-
 video/cx23885/cx23885-core.c  |2 +-
 video/cx88/cx88-mpeg.c|2 +-
 video/cx88/cx88-video.c   |2 +-
 video/dpc7146.c   |4 ++--
 video/hexium_gemini.c |4 ++--
 video/hexium_orion.c  |4 ++--
 video/meye.c  |2 +-
 video/mxb.c   |4 ++--
 video/saa7134/saa7134-cards.c |2 +-
 video/stradis.c   |2 +-
 video/zoran_card.c|2 +-
 22 files changed, 28 insertions(+), 29 deletions(-)
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Integrating patches in SLES10 e2fsprogs

2008-01-29 Thread Andreas Dilger
On Jan 28, 2008  10:54 -0600, Eric Sandeen wrote:
> Theodore Tso wrote:
> > On Mon, Jan 28, 2008 at 04:26:53PM +0100, Matthias Koenig wrote:
> >>> Patch6: e2fsprogs-mdraid.patch
> >>>
> >>> This apparently adds a new environment variable,
> >>> BLKID_SKIP_CHECK_MDRAID, which forces blkid to not detect mdraid
> >>> devices.  I'm not sure why.
> >> Workaround for people having stale RAID signature on their disk:
> >> https://bugzilla.novell.com/show_bug.cgi?id=100530
> > 
> > Hmm... there's got to be a better way around this.
> 
> Won't help existing block devices, but it'd be nice to have a common
> library which could be called @ mkfs time to wipe out all known
> signatures...
> 
> mkfs.xfs tries to do this, but it'd be silly to duplicate in every mkfs.

Well, blkid already has a way to _detect_ a lot of filesystem signatures,
so it might be relatively easy to exploit the type_array[] entries to have
it zap out all of these blocks.  That said, the majority of them are in
the first 68kB of the filesystem (mdraid excluded) so it shouldn't be too
hard to zero them out.  Let's hope nobody ever uses "0x" as magic.

mke2fs already tries to do this, though I notice:
- the zap_sector() call will skip the entire write if there is a BSD bootblock,
  instead of skipping only the first sector(s) and overwriting the rest...
  Since I don't know much about BSD bootblocks, I don't know what the right
  behaviour is, but I can guess we still want to zero out 4-68kB (or whatever).
- it only overwrites up to sector 8 (4kB) and not further into the disk to
  catch e.g. reiserfs superblocks.  Usually it will overwrite this anyways
  (GDT, bitmaps, inode table), but in some rare cases it might not.

Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.

-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] allow in-inode EAs on ext4 root inode

2008-01-29 Thread Eric Sandeen
The ext3 root inode was treated specially with respect 
to in-inode extended attributes, for reasons detailed 
in the removed comment below.  The first mkfs-created
inodes would not get extra_i_size or the EXT3_STATE_XATTR 
flag set in ext3_read_inode, which disallowed reading or 
setting in-inode EAs on the root.

However, in ext4, ext4_mark_inode_dirty calls 
ext4_expand_extra_isize for all inodes; once this is done 
EAs may be placed in the root ext4 inode body.

But for reasons above, it won't be found after a reboot.

testcase:

setfattr -n user.name -v value mntpt/
setfattr -n user.name2 -v value2 mntpt/
umount mntpt/; remount mntpt/
getfattr -d mntpt/

name2/value2 has gone missing; debugfs shows it in the
inode body, but it is not found there by getattr.

The following fixes it up; newer mkfs appears to properly
zero the inodes, so this workaround isn't needed for ext4.

Signed-off-by: Eric Sandeen <[EMAIL PROTECTED]>

---

Index: linux-2.6.24-rc6-mm1/fs/ext4/inode.c
===
--- linux-2.6.24-rc6-mm1.orig/fs/ext4/inode.c
+++ linux-2.6.24-rc6-mm1/fs/ext4/inode.c
@@ -2750,13 +2750,7 @@ void ext4_read_inode(struct inode * inod
ei->i_data[block] = raw_inode->i_block[block];
INIT_LIST_HEAD(&ei->i_orphan);
 
-   if (inode->i_ino >= EXT4_FIRST_INO(inode->i_sb) + 1 &&
-   EXT4_INODE_SIZE(inode->i_sb) > EXT4_GOOD_OLD_INODE_SIZE) {
-   /*
-* When mke2fs creates big inodes it does not zero out
-* the unused bytes above EXT4_GOOD_OLD_INODE_SIZE,
-* so ignore those first few inodes.
-*/
+   if (EXT4_INODE_SIZE(inode->i_sb) > EXT4_GOOD_OLD_INODE_SIZE) {
ei->i_extra_isize = le16_to_cpu(raw_inode->i_extra_isize);
if (EXT4_GOOD_OLD_INODE_SIZE + ei->i_extra_isize >
EXT4_INODE_SIZE(inode->i_sb)) {

-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Integrating patches in SLES10 e2fsprogs

2008-01-29 Thread Theodore Tso
On Tue, Jan 29, 2008 at 02:52:10PM +0100, Matthias Koenig wrote:
> > Are you running aclocal?  That may be causing the issues since I think
> > that may be causing it to ignore the autoconf macros I've established
> > in the top-level aclocal.m4 file.
> 
> Yes, someone here fixed the german po file (I already sent it to
> translation project). So we have to rerun the
> gettext related part, which results in the requirement to rerun aclocal.

Hmm?  You should be able to rebuild the .gmo file without needing to
re-run aclocal.  I do it all the time.  :-)

> > The problem is that the FHS does not guarantee that the subdirectories
> > stick around, and a number of distro's are using mounting tmpfs for
> > /var/run.  Makes sense, it can significantly speed up operations ---
> > but upon reboot, everything in /var/run is *gone*.
> 
> I see, then there is a problem of course. This is not the way it is
> done in Suse, so I did not see this problem.
> But, shouldn't the daemon then have an rc init script which checks for
> the needed subdirectory in /var/run and creates this if necessary?  If I
> look into /var/run I see a lot of daemons running with their own UID/GID
> and having their own directory. In this case there must be a mechanism
> to guarantee the existence of this directory, which would obviously be
> done in the init script (not sure if any init scripts currently do this
> in Suse).

Well, it either needs to be done in the init script or the daemons run
with root privs, create the directory, and then drop root privs.  So
yes, there are alternatives.  (a) Yet Another init script, (b) setuid
root, with a hard-coded user name that has to be looked up via
getpwent() and configured into /etc/passwd or the LDAP server, (c)
just put the darned directory in /var/lib.

It's all about tradeoffs, and for me, (c) was the easist, especially
since /var/lib/libuuid/clock.txt needs to be persistent across boots
anyway, and so needs to be in /var/lib instead of /var/run.  So yes, I
could have created some machinery to make sure /var/run/uuidd is
always present, but why not just reuse the already existing
/var/lib/libuuid directory, which has the correct ownership and which
has to be in /var/lib anyway?

> > and I still haven't figured out how to easily build my own
> > custom kernel RPM's on OpenSUSE, but it's quite nice.
> 
> unfortunately we don't have make-kpkg.

Yeah, and the RPM macros for generating kernel are incredibly twisted.
At least they were for RHEL4, when I was figuring out how to generate
a real-time kernel rpm.  Serious temptations to gouge out my eyeballs
with a spoon by the time I was done

- Ted
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Integrating patches in SLES10 e2fsprogs

2008-01-29 Thread Matthias Koenig
Theodore Tso <[EMAIL PROTECTED]> writes:

> On Mon, Jan 28, 2008 at 04:26:53PM +0100, Matthias Koenig wrote:
>> > Patch6: e2fsprogs-mdraid.patch
>> >
>> > This apparently adds a new environment variable,
>> > BLKID_SKIP_CHECK_MDRAID, which forces blkid to not detect mdraid
>> > devices.  I'm not sure why.
>> 
>> Workaround for people having stale RAID signature on their disk:
>> https://bugzilla.novell.com/show_bug.cgi?id=100530
>
> Hmm... there's got to be a better way around this.
>
> I'm not authorized to look at that BZ entry.  Is there any way you can
> make my "tytso" account have access to any e2fsprogs related BZ
> entries?  Thanks!

Still waiting for the person with privileges to do this.
In the meanwhile I will add you to the CC list of this bug, then you
should also be able to access the bug.

>
>> > Patch12:e2fsprogs-mkinstalldirs.patch
>> >
>> > Why?
>> 
>> Is needed since we recreate the auto* files.
>> But I agree that this patch should better set
>> MKINSTALLDIRS = @MKDIR_P@
>> not to literal "mkdir -p". The @MKINSTALLDIRS@ seems to be
>> obsolete in newer gettext (which seems to pull this in).
>
> Are you running aclocal?  That may be causing the issues since I think
> that may be causing it to ignore the autoconf macros I've established
> in the top-level aclocal.m4 file.

Yes, someone here fixed the german po file (I already sent it to
translation project). So we have to rerun the
gettext related part, which results in the requirement to rerun aclocal.

>
>> > Patch22:e2fsprogs-1.40.4-uuidd_pid_path.patch
>> >
>> > The problem with this patch is that /var/run is cleared via rm -rf, so
>> > it is highly problamtic to put the scratch directory for uuidd in
>> > /var/run.
>> 
>> Are you really sure? My interpretation of FHS is, that files under
>> /var/run/ have to be cleared or truncated, but the subdirectories do not
>> get deleted.
>
> The problem is that the FHS does not guarantee that the subdirectories
> stick around, and a number of distro's are using mounting tmpfs for
> /var/run.  Makes sense, it can significantly speed up operations ---
> but upon reboot, everything in /var/run is *gone*.

I see, then there is a problem of course. This is not the way it is
done in Suse, so I did not see this problem.
But, shouldn't the daemon then have an rc init script which checks for
the needed subdirectory in /var/run and creates this if necessary?  If I
look into /var/run I see a lot of daemons running with their own UID/GID
and having their own directory. In this case there must be a mechanism
to guarantee the existence of this directory, which would obviously be
done in the init script (not sure if any init scripts currently do this
in Suse). The only problem with uuidd is that it is designed to run upon
demand. But on the other side it is also not strictly necessary to run
uuidd to create UUIDs, only if you have special requirements on the
UUIDs. So I don't see a problem if uuidd could not be started for the
creation of UUIDs *generally* and if people wanting really unique
time-based UUIDs are required to run the init script first upon boot, 
which guarantees the existence of the /var/run/uuidd directory.
Any problems with this approach?

> Please let me know when you have a newer OpenSUSE factory RPM ready
> for use, and I'll take a look at the remaining patches and see which
> ones are ready for merging upstream. 

Yes, will do so. I am currently still looking through all the patches
where they come from and why they are needed. Will probably submit
a new package today.

> and I still haven't figured out how to easily build my own
> custom kernel RPM's on OpenSUSE, but it's quite nice.

unfortunately we don't have make-kpkg.

Matthias
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PULL] ext4 update

2008-01-29 Thread Theodore Tso
>fwiw, diffstat is confused by git's diff output; you need to use
>'diffstat -p1'

Argh, I have *got* to create a script that does this automatically.

Revised diffstat -p1 output follows...

- Ted

 Documentation/filesystems/ext4.txt   |   20 
 Documentation/filesystems/proc.txt   |   39 
 fs/Kconfig   |1 
 fs/afs/dir.c |9 
 fs/afs/inode.c   |3 
 fs/buffer.c  |   44 
 fs/ext2/super.c  |   32 
 fs/ext3/super.c  |   32 
 fs/ext4/Makefile |4 
 fs/ext4/balloc.c |  251 +
 fs/ext4/dir.c|   14 
 fs/ext4/extents.c|  525 +--
 fs/ext4/file.c   |   23 
 fs/ext4/group.h  |8 
 fs/ext4/ialloc.c |  161 
 fs/ext4/inode.c  |  396 +-
 fs/ext4/ioctl.c  |7 
 fs/ext4/mballoc.c| 4552 +++
 fs/ext4/migrate.c|  570 +++
 fs/ext4/namei.c  |  135 
 fs/ext4/resize.c |   28 
 fs/ext4/super.c  |  389 +-
 fs/ext4/xattr.c  |4 
 fs/inode.c   |   39 
 fs/jbd2/checkpoint.c |   22 
 fs/jbd2/commit.c |  255 +
 fs/jbd2/journal.c|  368 ++
 fs/jbd2/recovery.c   |  151 
 fs/jbd2/revoke.c |6 
 fs/jbd2/transaction.c|   34 
 fs/read_write.c  |1 
 include/asm-arm/bitops.h |2 
 include/asm-generic/bitops/ext2-non-atomic.h |2 
 include/asm-generic/bitops/le.h  |4 
 include/asm-m68k/bitops.h|2 
 include/asm-m68knommu/bitops.h   |2 
 include/asm-powerpc/bitops.h |4 
 include/asm-s390/bitops.h|2 
 include/linux/buffer_head.h  |2 
 include/linux/ext4_fs.h  |  224 +
 include/linux/ext4_fs_extents.h  |   25 
 include/linux/ext4_fs_i.h|   25 
 include/linux/ext4_fs_sb.h   |   55 
 include/linux/fs.h   |   21 
 include/linux/jbd2.h |  135 
 lib/find_next_bit.c  |   43 
 46 files changed, 7773 insertions(+), 898 deletions(-)
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html