packages (LINUX_2_6_37): kernel/kernel.spec, kernel/kernel-small_fixes.patc...
arekm
arekm at pld-linux.org
Wed Mar 23 22:06:54 CET 2011
Author: arekm Date: Wed Mar 23 21:06:54 2011 GMT
Module: packages Tag: LINUX_2_6_37
---- Log message:
- rel 2; fix OOM at xfs mount with quotas enabled when there is many inodes
---- Files affected:
packages/kernel:
kernel.spec (1.888.2.3 -> 1.888.2.4) , kernel-small_fixes.patch (1.21 -> 1.21.2.1)
---- Diffs:
================================================================
Index: packages/kernel/kernel.spec
diff -u packages/kernel/kernel.spec:1.888.2.3 packages/kernel/kernel.spec:1.888.2.4
--- packages/kernel/kernel.spec:1.888.2.3 Wed Mar 23 18:06:34 2011
+++ packages/kernel/kernel.spec Wed Mar 23 22:06:48 2011
@@ -89,7 +89,7 @@
%define basever 2.6.37
%define postver .4
-%define rel 1
+%define rel 2
%define _enable_debug_packages 0
@@ -1538,6 +1538,9 @@
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log$
+Revision 1.888.2.4 2011/03/23 21:06:48 arekm
+- rel 2; fix OOM at xfs mount with quotas enabled when there is many inodes
+
Revision 1.888.2.3 2011/03/23 17:06:34 arekm
- update unionfs to http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.8_for_2.6.37.2.diff.gz
================================================================
Index: packages/kernel/kernel-small_fixes.patch
diff -u packages/kernel/kernel-small_fixes.patch:1.21 packages/kernel/kernel-small_fixes.patch:1.21.2.1
--- packages/kernel/kernel-small_fixes.patch:1.21 Tue Mar 8 21:38:28 2011
+++ packages/kernel/kernel-small_fixes.patch Wed Mar 23 22:06:48 2011
@@ -117,3 +117,72 @@
sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET);
}
+--- linux-2.6.37/fs//xfs/linux-2.6/xfs_super.c.org 2011-03-23 09:08:50.511734576 +0100
++++ linux-2.6.37/fs//xfs/linux-2.6/xfs_super.c 2011-03-23 09:13:58.385845623 +0100
+@@ -1566,13 +1566,17 @@
+ if (error)
+ goto out_free_sb;
+
+- error = xfs_mountfs(mp);
+- if (error)
+- goto out_filestream_unmount;
+-
+ if (mp->m_flags & XFS_MOUNT_TAGGED)
+ sb->s_flags |= MS_TAGGED;
+
++ /*
++ * we must configure the block size in the superblock before we run the
++ * full mount process as the mount process can lookup and cache inodes.
++ * For the same reason we must also initialise the syncd and register
++ * the inode cache shrinker so that inodes can be reclaimed during
++ * operations like a quotacheck that iterate all inodes in the
++ * filesystem.
++ */
+ sb->s_magic = XFS_SB_MAGIC;
+ sb->s_blocksize = mp->m_sb.sb_blocksize;
+ sb->s_blocksize_bits = ffs(sb->s_blocksize) - 1;
+@@ -1580,6 +1584,16 @@
+ sb->s_time_gran = 1;
+ set_posix_acl_flag(sb);
+
++ error = xfs_syncd_init(mp);
++ if (error)
++ goto out_filestream_unmount;
++
++ xfs_inode_shrinker_register(mp);
++
++ error = xfs_mountfs(mp);
++ if (error)
++ goto out_syncd_stop;
++
+ root = igrab(VFS_I(mp->m_rootip));
+ if (!root) {
+ error = ENOENT;
+@@ -1595,14 +1609,11 @@
+ goto fail_vnrele;
+ }
+
+- error = xfs_syncd_init(mp);
+- if (error)
+- goto fail_vnrele;
+-
+- xfs_inode_shrinker_register(mp);
+-
+ return 0;
+
++ out_syncd_stop:
++ xfs_inode_shrinker_unregister(mp);
++ xfs_syncd_stop(mp);
+ out_filestream_unmount:
+ xfs_filestream_unmount(mp);
+ out_free_sb:
+@@ -1626,6 +1637,9 @@
+ }
+
+ fail_unmount:
++ xfs_inode_shrinker_unregister(mp);
++ xfs_syncd_stop(mp);
++
+ /*
+ * Blow away any referenced inode in the filestreams cache.
+ * This can and will cause log traffic as inodes go inactive
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel.spec?r1=1.888.2.3&r2=1.888.2.4&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-small_fixes.patch?r1=1.21&r2=1.21.2.1&f=u
More information about the pld-cvs-commit
mailing list