View Issue Details

IDProjectCategoryView StatusLast Update
0004586CentOS-6CentOS-6-Pluspublic2018-08-18 11:20
Reportertoracat 
PrioritynormalSeverityfeatureReproducibilityN/A
Status assignedResolutionopen 
Product Version6.3 
Target VersionFixed in Version 
Summary0004586: Build centosplus kernels for CentOS-6
DescriptionTracking for centosplus kernels for CentOS-6
TagsNo tags attached.

Relationships

parent of 0004681 resolvedtoracat CentOS-6 enabling the lp driver in cplus6 kernel 
parent of 0004687 resolvedtoracat CentOS-6 centosplus kernel - irDA modules 
parent of 0004864 resolvedtoracat CentOS-6 VIA VT6420/1 and WD drives incompatibility 
parent of 0004806 resolvedtoracat CentOS-6 Allow accepting IPV6 router advertisements and sending router solicitations if forwarding is enabled. 
parent of 0005054 resolvedtoracat CentOS-6 vmxnet3 patch for CentOSPlus kernel 
parent of 0005219 resolvedtoracat CentOS-6 Please enable TOMOYO security module in centos plus kernel package 
parent of 0005378 resolvedtoracat CentOS-6 Add a bug fix for the TOMOYO security module in the centosplus kernel 
parent of 0005397 resolvedtoracat CentOS-6 Consider applying a patch that prevents system crash on the machine with uptime > 208.5 days 
parent of 0005453 resolvedtoracat CentOS-6 Enable jfs in the centosplus kernel 
parent of 0005709 resolvedtoracat CentOS-6 Enable CONFIG_ARPD 
related to 0004100 assignedtoracat CentOS-5 RFE: centosplus kernel summary 

Activities

toracat

toracat

2010-11-13 02:18

manager   ~0012048

There was a rather major change in the way kernel srpm gets constructed between the beta2 kernel and the GA kernel. Therefore, the procedure outlined in the note 11959 of bug #4100 needs to be reevaluated.

I divide the work into the following 3 interrelated targets:

(1) How to customize config files.
(2) How to add centos patches.
(3) Selection of options that are going to be enabled.
toracat

toracat

2010-11-14 22:29

manager   ~0012050

Last edited: 2010-11-14 22:29

(1) How to customize config files.

The note in bug #4100 needed no adjustment. A slightly better version is:

- Create customized config files and put them in SOURCES
     kernel-2.6.32-i686.config
     kernel-2.6.32-x86_64.config

- In the spec file (relevant lines only),

+Source100: kernel-2.6.32-i686.config
+Source101: kernel-2.6.32-x86_64.config

-cp $RPM_SOURCE_DIR/config-* .
+cp $RPM_SOURCE_DIR/kernel-*.config .

-make -f %{SOURCE20} VERSION=%{version} configs
+# make -f %{SOURCE20} VERSION=%{version} configs

toracat

toracat

2010-11-14 23:23

manager   ~0012051

(2) How to add centos patches.

There are no longer individual patches in SOURCES in el6. The source code is a single tar.bz2 file with a version number included ( for example, linux-2.6.32-71.7.1.el6.tar.bz2 ).

Proposed procedure (not tested yet):

- Untar the source into a tree.
- Copy the files to be patched with a '.dist' added ( cp -p file file.dist ).
- Edit the original file.
- Run gendiff to get a diff file ( e.g. my.patch ) using 'dist' as the diff extension.
- Add 'my.patch' to the spec file and add this line to the spec file:

ApplyOptionalPatch my.patch
toracat

toracat

2010-11-15 00:46

manager   ~0012052

(3) Selection of options that are going to be enabled.

The following steps were performed:

- Enabled the options that are currently enabled in the cplus-5 kernel.
- Build failed.

fs/jfs/super.c: In function 'jfs_fill_super':
fs/jfs/super.c:527: error: comparison of distinct pointer types lacks a cast
make[2]: *** [fs/jfs/super.o] Error 1

- Disabled JFS => build failed again.

fs/ncpfs/inode.c: In function 'ncp_fill_super':
fs/ncpfs/inode.c:435: error: 'data.mounted_vol[1u]' may be used uninitialized
in this function
fs/ncpfs/inode.c:435: error: 'data.mounted_vol[16u]' may be used uninitialized
in this function
make[2]: *** [fs/ncpfs/inode.o] Error 1

- Disabled NCP => build failed again.

drivers/net/wan/farsync.c: In function 'fst_intr_rx':
drivers/net/wan/farsync.c:1311: error: cast to pointer from integer of
different size
drivers/net/wan/farsync.c: In function 'do_bottom_half_tx':
drivers/net/wan/farsync.c:1406: error: cast to pointer from integer of
different size
make[3]: *** [drivers/net/wan/farsync.o] Error 1

- Reverted all changes made in "Wan Interface".
- Build succeeded.

Currently enabled options include:

Some network adapters, legacy Firewire support, all radio devices,
all serial ATA, video capture, DVB drivers, BusLogic support,
IPX and Appletalk support, ReiserFS, UFS.
toracat

toracat

2010-11-15 19:01

manager   ~0012055

The first test version of c6 plus kernel srpm submitted to devs.
toracat

toracat

2010-11-22 15:58

manager   ~0012094

The above test version was done with kernel 2.6.32-71.7.1.el6.

Using the same config files, I built the cplus GA kernel ( 2.6.32-71 ) and submitted it to the devs.
toracat

toracat

2010-11-22 16:25

manager   ~0012095

Regarding point (1) How to customize config files, the kABI bug in the spec file filed for RHEL-5 by Alan Bartlett ( https://bugzilla.redhat.com/show_bug.cgi?id=456765 ) is present in RHEL-6 kernels.

I cloned the bug for RHEL-6 ( https://bugzilla.redhat.com/show_bug.cgi?id=655889 ). The available patch can be applied to the cplus kernel. However, this is not _required_ for the cplus kernel which always maintains kABI compatibility.
customerjoe

customerjoe

2010-12-14 13:26

reporter   ~0012233

Unfortunately the upstream RHEL6 kernel has not include the lp driver anymore. The cplus6 kernel will include this (CONFIG_PRINTER=m)? This is an important module for us. Or we need always build a custom kernel in the future...
toracat

toracat

2010-12-14 15:46

manager   ~0012234

@customerjoe

Would you mind filing a request under the 'CentOS-6-Plus' category in the 'CentOS-6' project? I will try enabling CONFIG_PRINTER in the C6 plus kernel.
toracat

toracat

2010-12-18 22:21

manager   ~0012252

Enable irDA (bug #4687).
toracat

toracat

2011-01-13 16:35

manager   ~0012342

kernel-2.6.32-71.14.1.el6 is out upstream.
toracat

toracat

2011-01-27 16:45

manager   ~0012381

C6 cplus kernel will include this upstream patch:

https://bugzilla.redhat.com/show_bug.cgi?id=655889
 ( kabitool blocks custom kernel builds when kernel version > 2.6.18-53.1.21.el5 )

diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index ba5663b..163ca38 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -1099,11 +1099,12 @@ hwcap 0 nosegneg"
     # create the kABI metadata for use in packaging
     echo "**** GENERATING kernel ABI metadata ****"
     gzip -c9 < Module.symvers > $RPM_BUILD_ROOT/boot/symvers-$KernelVer.gz
+
+%if %{with_kabichk}
     chmod 0755 %_sourcedir/kabitool
     rm -f %{_tmppath}/kernel-$KernelVer-kabideps
     %_sourcedir/kabitool -s Module.symvers -o %{_tmppath}/kernel-$KernelVer-kabideps
 
-%if %{with_kabichk}
     echo "**** kABI checking is enabled in kernel SPEC file. ****"
     chmod 0755 $RPM_SOURCE_DIR/check-kabi
     if [ -e $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu}$Flavour ]; then
@@ -1114,6 +1115,9 @@ hwcap 0 nosegneg"
         echo "**** NOTE: Cannot find reference Module.kabi file. ****"
     fi
 %endif
+ # Ensure the kabideps file always exists for the RPM ProvReq scripts
+ touch %{_tmppath}/kernel-$KernelVer-kabideps
+
     # then drop all but the needed Makefiles/Kconfig files
     rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Documentation
     rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts
toracat

toracat

2011-02-22 18:44

manager   ~0012438

kernel-2.6.32-71.18.1.el6 is out upstream.
toracat

toracat

2011-02-26 02:33

manager   ~0012446

Cplus kernel srpms for all versions published upstream are now available from:

http://centos.toracat.org/kernel/centos6/centosplus-testing/SRPMS/

kernel-2.6.32-71.el6.centos.ayplus.src.rpm
kernel-2.6.32-71.7.1.el6.centos.ayplus.src.rpm
kernel-2.6.32-71.14.1.el6.centos.ayplus.src.rpm
kernel-2.6.32-71.18.1.el6.centos.ayplus.src.rpm

Binaries are there as well ( 2.6.32-71 and 2.6.32-71.18.1 only ).

[Note: I decided not to include the patch mentioned in comment 12381]
toracat

toracat

2011-03-08 20:24

manager   ~0012498

kernel-2.6.32-71.18.2.el6 is out upstream.
toracat

toracat

2011-03-09 19:03

manager   ~0012502

Both the srpm and binaries (i686 and x86_64) of cplus kernel-2.6.32-71.18.2.el6 are now available from:

http://centos.toracat.org/kernel/centos6/centosplus-testing/
toracat

toracat

2011-03-31 15:26

manager   ~0012563

[Note to self] It was noticed (through elrepo M/L) that the HFS support is enabled in C5 but now disabled in the EL6 kernel.

# CONFIG_HFS_FS is not set

If there is a request, the hfs module will be added to the cplus-6 kernel.
toracat

toracat

2011-04-08 16:24

manager   ~0012585

kernel-2.6.32-71.24.1.el6 is out upstream.

Looking into adding the patches reported by Steve Clark:

http://lists.centos.org/pipermail/centos/2011-April/109374.html
toracat

toracat

2011-04-08 23:41

manager   ~0012587

(1) The procedure for adding patches outlined in note 12051 seems to work.

(2) In kernel-2.6.32-71.24.1.el6, config files needed a minor modification. The following line had to be added:

CONFIG_SECURITY_DMESG_RESTRICT is not set

Otherwise the 'make ARCH=xxx nonint_oldconfig' step will fail.

[Note tp self] It's best to run 'make oldconfig' for each arch to confirm the validity of configs.
toracat

toracat

2011-04-09 13:37

manager   ~0012588

A test version with the patches referenced in note 12585 is now available. Look for kernel-2.6.32-71.24.1.el6.centos.ayplus.1 at:

http://centos.toracat.org/kernel/centos6/centosplus-testing/
toracat

toracat

2011-04-29 01:49

manager   ~0012693

The patch referenced in note 12585 and bug #4806 was named (according to the centos naming convention) :

centos-linux-2.6-ipv6-cpe-router-bug4806.patch

and is now in kernel-2.6.32-71.24.1.el6.centos.ayplus

Both srpm and binaries are available from the usual place.
toracat

toracat

2011-05-11 05:56

manager   ~0012729

kernel-2.6.32-71.24.1.el6 is out upstream. The cplus kernel includes a new patch ( bug #4864 ):

centos-linux-2.6-sata_via-vt6420-vt6421-magic-fix-bug4864.patch

Both the i686 and x86_64 packages are available at:

http://centos.toracat.org/kernel/centos6/centosplus-testing/
toracat

toracat

2011-05-20 00:53

manager   ~0012763

RHEL 6.1 is out. The kernel is 2.6.32-131.0.15.el6. Cplus config files need to be created from scratch based on the mods done to the last 6.0 plus kernel.
toracat

toracat

2011-05-23 07:35

manager   ~0012774

[Note] The issue reported in bug 0004864 has been fixed in kernel-2.6.32-131.0.15.el6. The patch noted in comment 12729 is no longer needed in the cplus 6.1 kernel.
toracat

toracat

2011-06-27 15:29

manager   ~0012855

Notes on building cplus 6.1 kernels.
=====================================

(1) Options enabled -- start with the same set of options enabled in 6.0.
(2) Patches -- apply one patch from 6.0 ; the other no longer required.

* Progress *
(1) Options.
- Enabled the same options as in C6.0
- Build failed

drivers/media/radio/si4713-i2c.c:413: error: 'struct si4713_platform_data' has no member named 'set_power'
make[3]: *** [drivers/media/radio/si4713-i2c.o] Error 1

- Disable Radio Adapters and try again
- Build failed

drivers/media/video/vivi.c: In function 'vivi_open':
drivers/media/video/vivi.c:1185: error: too few arguments to function 'videobuf_queue_vmalloc_init'
make[3]: *** [drivers/media/video/vivi.o] Error 1

- Disable Virtual video driver
- Build failed

drivers/media/video/zoran/zoran_card.c:1368: error: too many arguments to function 'v4l2_i2c_new_subdev'
make[4]: *** [drivers/media/video/zoran/zoran_card.o] Error 1

- Not only Zran but a bunch of modules in the V4L section failed when enabled. So give up on touching any of them there.

-Modules build OK ... BUT

*** ERROR - ABI BREAKAGE WAS DETECTED ***

The following symbols have been changed (this will cause an ABI breakage):

lro_receive_skb
invalidate_mapping_pages
pcim_iomap_regions
(more than 1000 listed)
toracat

toracat

2011-06-27 15:38

manager   ~0012856

* Progress (cont') *

- Start from scratch.
- Add a few modules at a time and test to see if kABI-checking passes.
- About 12 tries later, got a 'good' set of options.

Note: possible cause of the kABI incompatibility -- in a "bad" set, there were some debug options enabled (by accident).

(2) Patches
- Applied centos-linux-2.6-ipv6-cpe-router-bug4806.patch
toracat

toracat

2011-06-30 01:43

manager   ~0012871

* Progress (cont') *

- Enabled a few more options. No kABI breakage.

New config files (for both i686 and x86_64) have the following features enabled:

  IPX, Appletalk, BusLogic, all serial ATA, legacy Firewire,
  some network adapters, some ATM, parallel printer, ReiserFS,
  Hyper-V client
toracat

toracat

2011-06-30 04:32

manager   ~0012872

The first CentOS 6.1 plus kernels are now available for testing :

http://centos.toracat.org/kernel/centos6/centosplus-testing/

It's a GA kernel ( kernel-2.6.32-131.0.15.el6.centos.ayplus )
toracat

toracat

2011-07-01 15:54

manager   ~0012876

The first update to the 6.1 cplus kernel is now available for testing.

kernel-2.6.32-131.2.1.el6.centos.ayplus
toracat

toracat

2011-07-02 01:57

manager   ~0012877

The second (current) update to the 6.1 cplus kernel is now available for testing.

kernel-2.6.32-131.4.1.el6.centos.ayplus
toracat

toracat

2011-08-24 15:14

manager   ~0013154

kernel-2.6.32-131.12.1.el6 is out upstream. The cplus kernel includes a new patch (from bug #5054):

centos-linux-2.6-vmxnet3-LRO-state-fix-bug5054.patch
mickylmartin

mickylmartin

2011-10-03 14:39

reporter   ~0013445

Toracat, thanks for putting up the kernels.
But the latest has some problem with the e1000 cards, crashing network while transferring large files.

kernel: ------------[ cut here ]------------
kernel: WARNING: at net/sched/sch_generic.c:261 dev_watchdog+0x1ec/0x200() (Tainted: G ---------------- T)
kernel: Hardware name: X9SCL/X9SCM
kernel: NETDEV WATCHDOG: eth1 (e1000e): transmit queue 0 timed out
kernel: Modules linked in: nls_utf8 cifs xt_NOTRACK iptable_raw ipt_MASQUERADE iptable_nat nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack iptable_filter ip_tables nfs fscache(T) nfsd lockd nfs_acl auth_rpcgss sunrpc exportfs xt_comment ipt_LOG xt_limit xt_recent xt_multiport sit tunnel4 arc4 ecb ppp_mppe ppp_async crc_ccitt ppp_generic slhc ipv6 xt_iprange serio_raw ghes hed i2c_i801 i2c_core iTCO_wdt iTCO_vendor_support e1000e sg ext4 mbcache jbd2 sd_mod crc_t10dif ahci 3w_sas dm_mod [last unloaded: nf_conntrack]
kernel: Pid: 0, comm: swapper Tainted: G ---------------- T 2.6.32-131.12.1.el6.ayplus.i686 #1
kernel: Call Trace:
kernel: [<c0452b31>] ? warn_slowpath_common+0x81/0xc0
kernel: [<c0796a6c>] ? dev_watchdog+0x1ec/0x200
kernel: [<c0796a6c>] ? dev_watchdog+0x1ec/0x200
kernel: [<c0452c03>] ? warn_slowpath_fmt+0x33/0x40
kernel: [<c0796a6c>] ? dev_watchdog+0x1ec/0x200
kernel: [<c0427313>] ? lapic_next_event+0x13/0x20
kernel: [<c0481dec>] ? clockevents_program_event+0x8c/0x120
kernel: [<c0463649>] ? run_timer_softirq+0x139/0x2c0
kernel: [<c0796880>] ? dev_watchdog+0x0/0x200
kernel: [<c0483178>] ? tick_program_event+0x28/0x40
kernel: [<c0459d0f>] ? __do_softirq+0x8f/0x1b0
kernel: [<c0459e6d>] ? do_softirq+0x3d/0x50
kernel: [<c0459fc5>] ? irq_exit+0x65/0x70
kernel: [<c0427b73>] ? smp_apic_timer_interrupt+0x53/0x90
kernel: [<c0825785>] ? apic_timer_interrupt+0x31/0x38
kernel: [<c04500d8>] ? prof_sysexit_disable__unshare+0x8/0x10
kernel: [<c066442c>] ? acpi_idle_enter_bm+0x26b/0x29c
kernel: [<c0753482>] ? cpuidle_idle_call+0x72/0x100
kernel: [<c0408aa4>] ? cpu_idle+0x94/0xd0
kernel: [<c0a609b4>] ? start_kernel+0x3a9/0x3ae
kernel: [<c0a60449>] ? unknown_bootoption+0x0/0x190
kernel: ---[ end trace db11f878be3d15be ]---
kernel: e1000e 0000:04:00.0: eth1: Reset adapter
kernel: e1000e 0000:04:00.0: eth1: Error reading PHY register
toracat

toracat

2011-10-03 15:46

manager   ~0013447

Last edited: 2011-10-03 15:48

View 2 revisions

@mickylmartin

I suspect the problem you are seeing is not unique to the centosplus kernel.

(1) Can you try the distro kernel available at:

http://mirror.centos.org/centos/6.0/cr/x86_64/RPMS/
 (if your OS is 32-bit, go to i386 instead)

(2) You can also try a newer version of the e1000e driver by installing ELRepo's kmod-e1000e (version 1.4.4). The CentOS-6 kernel has version 1.2.20-k2.

In any case, please open a new bug if you wish to report the issue about the e1000e kernel driver. Once a bug has been identified (and a fix is available), I will handle it in this thread.

toracat

toracat

2011-11-02 12:17

manager   ~0013694

Enable TOMOYO security module in the next build (bug #5219).

CONFIG_SECURITY_PATH=y
CONFIG_SECURITY_TOMOYO=y
toracat

toracat

2011-11-22 16:05

manager   ~0013808

Kernel update is out upstream ( kernel-2.6.32-131.21.1.el6 ) today.
toracat

toracat

2011-11-23 21:23

manager   ~0013824

Cplus kernel-2.6.32-131.21.1.el6 submitted to the devs. TOMOYO security module enabled in this version and was confirmed to work by the requester(bug 0005219).
toracat

toracat

2011-12-17 17:32

manager   ~0013939

Cplus kernel for CentOS 6.2 ( kernel-2.6.32-220.el6.centos.ayplus ) is available for testing :

 http://centos.toracat.org/kernel/centos6/centosplus-testing/

Changes from the previous version:

- Centos patch vmxnet3-LRO-state-fix [bug5054] was removed (no longer needed).
- A new centos patch bonding-fix-802.3ad.patch added [1].
- TOMOYO remains enabled.

[1] No bug number; kbsingh's personal request. The patch is from:

http://git390.marist.edu/cgi-bin/gitweb.cgi?p=linux-2.6.git;a=commitdiff_plain;h=2d6682db114cb53bc94991659478756302e6a600
toracat

toracat

2011-12-29 02:21

manager   ~0014078

Apply a TOMOYO patch in the next version. ( bug #5378 )
amcrory

amcrory

2012-01-06 02:31

reporter  

kernel-jfs.patch.txt (588 bytes)
diff -uNr linux-2.6.32.orig/fs/jfs/super.c linux-2.6.32/fs/jfs/super.c
--- linux-2.6.32.orig/fs/jfs/super.c    2012-01-05 19:00:04.369696469 -0500
+++ linux-2.6.32/fs/jfs/super.c 2012-01-05 19:46:23.823696546 -0500
@@ -524,7 +524,7 @@
         * Page cache is indexed by long.
         * I would use MAX_LFS_FILESIZE, but it's only half as big
         */
-       sb->s_maxbytes = min(((u64) PAGE_CACHE_SIZE << 32) - 1, sb->s_maxbytes);
+       sb->s_maxbytes = min(((u64) PAGE_CACHE_SIZE << 32) - 1, (u64)sb->s_maxbytes);
 #endif
        sb->s_time_gran = 1;
        return 0;
kernel-jfs.patch.txt (588 bytes)
amcrory

amcrory

2012-01-06 02:33

reporter   ~0014113

I've uploaded a patch that fixed the jfs compile error for me. Tested with kernel-2.6.32-220.2.1.el6.centos.plus.src.rpm
toracat

toracat

2012-01-06 02:56

manager   ~0014114

Thanks for the patch. I will take a look at it. I assume it deals with the issue I reported in note 12052.
amcrory

amcrory

2012-01-06 17:22

reporter   ~0014117

yes that's correct.
toracat

toracat

2012-01-24 20:30

manager   ~0014310

@amcrory

Your patch has been applied to the latest cplus kernel 2.6.32-220.4.1.el6.centos.plus. I was able to enable JFS with the patch. Thank you. This was filed in a separate bug report (#5453).
toracat

toracat

2012-01-30 17:26

manager   ~0014369

The srpm for kernel 2.6.32-220.4.1.el6.centos.plus was submitted to the devs on 2012-01-24. There seems to be some trouble releasing the packages to the mirrors. Hope the issue gets resolved soon.
toracat

toracat

2012-02-14 00:07

manager   ~0014466

kernel-2.6.32-220.4.2.el6 was released upstream today. The cplus kernel has one patch removed and one added.

Removed: overflow-in-sched_clock-bug5397.patch
        (this is now included in the distro kernel)

Added: tomoyo-fix-race-on-updating-profile-comment-bug5378.patch
toracat

toracat

2012-03-06 21:28

manager   ~0014621

kernel-2.6.32-220.7.1.el6 was released upstream today. No additions/modifications for the cplus kernel this time.
toracat

toracat

2012-03-12 18:42

manager   ~0014661

Consider adding a TOMOYO patch at the next kernel update (bug #5588).
toracat

toracat

2012-04-17 17:54

manager   ~0014839

kernel-2.6.32-220.13.1.el6 is out upstream.
toracat

toracat

2012-04-19 00:42

manager   ~0014850

kernel-2.6.32-220.13.1.el6.centos.plus released. A new patch (TOMOYO-related, bug 5588) added.
toracat

toracat

2012-05-05 20:30

manager   ~0015032

Consider enabling CONFIG_ARPD in the next update (bug #5709).
toracat

toracat

2012-05-16 13:36

manager   ~0015090

Last edited: 2012-06-18 16:28

View 3 revisions

kernel-2.6.32-220.17.1.el6.centos.plus released with CONFIG_ARPD enabled.

toracat

toracat

2012-06-18 16:30

manager   ~0015281

kernel-2.6.32-220.23.1.el6.centos.plus has a bug fix from #5383 (pcie-clear-root-pme-status patch).
toracat

toracat

2012-06-21 00:15

manager   ~0015295

EL 6.3 kernel 2.6.32-279.el6 is out. Configs will be rebuilt. All existing patches seem to apply cleanly.
toracat

toracat

2012-07-07 21:07

manager   ~0015371

Last edited: 2012-07-13 20:55

View 2 revisions

Cplus GA kernel for 6.3 (2.6.32-279.el6) has 2 new patches from upstream bugzilla 834764 (bonding/vlan issue).

https://bugzilla.redhat.com/show_bug.cgi?id=834764

[EDIT] CentOS bug report now filed for the bonding/vlan issue at:
http://bugs.centos.org/view.php?id=5816

toracat

toracat

2012-07-09 15:43

manager   ~0015379

A candidate patch: fix for the virtio-net driver as reported in :

http://bugs.centos.org/view.php?id=5526

upstream at kernel.org: http://git.kernel.org/?p=linux/kernel/git/davem/net-next.git;a=commitdiff;h=4b727361f0bc7ee7378298941066d8aa15023ffb;hp=e1ac50f64691de9a095ac5d73cb8ac73d3d17dba

CentOS patch: http://bugs.centos.org/file_download.php?file_id=1331&type=bug
toracat

toracat

2012-07-10 13:55

manager   ~0015389

kernel-2.6.32-279.1.1.el6 released upstream.
toracat

toracat

2012-07-19 22:28

manager   ~0015517

kernel-2.6.32-279.2.1.el6 is out. The bonding/vlan issue fixed in this version. Relevant patches removed from the cplus kernel.
toracat

toracat

2012-07-26 04:35

manager   ~0015550

Consider adding a patch from bug #5859 (vlan-filter-device-events-on-bonds.patch) to the next update.
toracat

toracat

2012-07-26 10:54

manager   ~0015553

Last edited: 2012-07-28 11:08

View 2 revisions

Consider adding a patch from bug #5424 (fix PTRACE_GETEVENTMSG(pid) in LXC) to the next update.

toracat

toracat

2012-07-28 10:59

manager   ~0015561

Last edited: 2012-07-28 11:02

View 2 revisions

Consider adding a patch from https://bugzilla.redhat.com/show_bug.cgi?id=841983 . The bug is marked urgent, so the patch might appear in the next distro kernel.

[EDIT] see 2 notes ago.

toracat

toracat

2012-08-14 20:29

manager   ~0015653

kernel 2.6.32-279.5.1.el6 is out upstream. Turns out one of the two patches to be included (from #5859) is already in this kernel. Therefore there is only one new patch in this release of cplus kernel (from #5424).
toracat

toracat

2012-09-17 03:11

manager   ~0015786

In the next update,

(1) add a patch from bug #5955:

centos-linux-2.6-jbd-fix-fsync-tid-wraparound-bug5955.patch

(2) in the spec file, comment out the following zero byte files that cause git to fail to pick up:

Module.kabi_greylist_ppc64
Module.kabi_greylist_s390x
toracat

toracat

2012-09-25 20:56

manager   ~0015824

kernel-2.6.32-279.9.1.el6 is out upstream. The plus kernel has one new patch from bug 0005955. spec modified as noted in comment 15786 (with 2 more lines related to ppc64 and s390x).
toracat

toracat

2012-10-13 17:59

manager   ~0015927

When the next kernel update comes out upstream, check bug #6018 to see if the e1000e patch(es) have already been applied.
toracat

toracat

2012-10-16 15:22

manager   ~0015945

A kernel update released upstream ( 2.6.32-279.11.1.el6 ). The e1000e patches from bug #6018 applied to the cplus kernel.
toracat

toracat

2012-12-12 16:20

manager   ~0016135

Make sure CONFIG_ARPD is enabled (bug #5709).
toracat

toracat

2012-12-18 22:44

manager   ~0016152

A kernel update released upstream ( 2.6.32-279.19.1.el6 ). CONFIG_ARPD (re)enabled.
toracat

toracat

2012-12-29 17:44

manager   ~0016212

Try adding a patch from bug #6157.

commit e25cd062b16ed1d41a157aec5a108abd6ff2e9f9
Author: Randy Dunlap <randy.dunlap@oracle.com>
Date: Sat Nov 13 08:44:33 2010 -0800

    PCI: sysfs: fix printk warnings

    Cast pci_resource_start() and pci_resource_len() to u64 for printk.

    drivers/pci/pci-sysfs.c:753: warning: format '%16Lx' expects type 'long long unsigned int', but argument
    drivers/pci/pci-sysfs.c:753: warning: format '%16Lx' expects type 'long long unsigned int', but argument

    Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
toracat

toracat

2013-02-07 16:03

manager   ~0016454

kernel-2.6.32-279.22.1.el6.centos.plus released. It has 2 new patches:

sysfs-fix-printk-warnings-bug6157.patch [bug #6157]
e1000-properly-kill-reset-task-bug6187.patch [bug #6187]
toracat

toracat

2013-02-21 19:12

manager   ~0016521

EL 6.4 is out. kernel config files have a number of changes. Will be reconstructed for the plus kernels.
toracat

toracat

2013-02-27 00:11

manager   ~0016543

As of CentOS 6.4 (kernel 2.6.32-358.el6), the centosplus kernel retains the following 7 patches. Other patches are now in the distro kernel.

centos-linux-2.6-bonding-fix-802.3ad.patch
centos-linux-2.6-hid-non-LogiTech-remote-bug5780.patch
centos-linux-2.6-ipv6-cpe-router-bug4806.patch
centos-linux-2.6-jfs-bug5453.patch
centos-linux-2.6-sysfs-fix-printk-warnings-bug6157.patch
centos-linux-2.6-tomoyo-fix-race-on-updating-profile-comment-bug5378.patch
centos-linux-2.6-tomoyo-use-UMH_WAIT_PROC-constant-bug5588.patch

Also, legacy IEEE1394 support is now disabled because its code causes compilation errors.
toracat

toracat

2013-02-27 00:13

manager   ~0016544

kernel-2.6.32-358.0.1.el6 is out upstream. The plus kernel built and submitted.
toracat

toracat

2013-03-05 08:41

manager   ~0016597

In the next update, add a patch from bug #6104.
toracat

toracat

2013-03-08 16:12

manager   ~0016623

In the next update, add a patch from bug #6087.
toracat

toracat

2013-03-12 17:37

manager   ~0016677

kernel-2.6.32-358.2.1.el6 is out upstream. There are 2 new patches to apply ( from bugs 6087 and 6104 ).
toracat

toracat

2013-03-13 18:09

manager   ~0016696

A patch in bug#6316 is a candidate for the next update.
toracat

toracat

2013-03-29 12:56

manager   ~0017040

Add a patch from bug #6346.
toracat

toracat

2013-05-29 16:09

manager   ~0017517

Apply the config mods from #6429 to the next kernel update.
toracat

toracat

2013-07-01 16:21

manager   ~0017613

New patch candidates (if not in the next kernel update):

bug #6319 ( https://bugzilla.redhat.com/show_bug.cgi?id=887006 )
CVE-2013-2224 ( https://bugzilla.redhat.com/show_bug.cgi?id=979936 )
toracat

toracat

2013-07-16 17:55

manager   ~0017686

Kernel update has been released upstream ( 2.6.32-358.14.1.el6 ). Patches to be added include:

bug #5526 #6548 and cve-2013-2224

bug #6319 -- need testing
toracat

toracat

2013-08-01 16:11

manager   ~0017760

Last edited: 2013-08-19 21:31

View 2 revisions

Consider adding the patch from #6586 in the next update.

[EDIT] also patches from #6548 and #6319

toracat

toracat

2013-08-27 20:39

manager   ~0017902

kernel-2.6.32-358.18.1.el6 is out upstream.

New patches added from bugs #6319 and #6548.

Patches removed now that they are in the distro kernel: CVE2013-2224 (and #6586)
toracat

toracat

2013-10-19 16:04

manager   ~0018197

kernel-2.6.32-358.23.2.el6 is out. No new patches added to the plus kernel.
toracat

toracat

2013-11-22 20:50

manager   ~0018388

RHEL 6.5 has been released. The kernel version is 2.6.32-431.el6.

In 2.6.32-431.el6.centos.plus,

* The following changes have been made to the centos patches (bug number):

Removed because they are now in the distro kernel -> 6346, 6319, 6316

Removed because they do not apply cleanly -> 4806

Remain in the plus kernel -> 5453, 5378, 5588, 5780, 6157, 6104, 5526, 6548

* No new additions / modifications done to the config files.
toracat

toracat

2013-12-15 20:44

manager   ~0018669

Last edited: 2013-12-15 21:07

View 2 revisions

Consider adding the following patches from https://gist.github.com/enakai00/7558549 in the next kernel update ( making xattr enbled tmpfs kernel ).

https://gist.github.com/enakai00/7558482
https://gist.github.com/enakai00/7558460

git reference:
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b09e0fa4b4ea66266058eead43350bd7d55fec67

bleve

bleve

2013-12-19 09:15

reporter  

fs-tmpfs-add-xattrs-support.patch (15,373 bytes)
Backport by Tuomo Soini <tis@foobar.fi>

From b09e0fa4b4ea66266058eead43350bd7d55fec67 Mon Sep 17 00:00:00 2001
From: Eric Paris <eparis@redhat.com>
Date: Tue, 24 May 2011 17:12:39 -0700
Subject: [PATCH] tmpfs: implement generic xattr support

Implement generic xattrs for tmpfs filesystems.  The Feodra project, while
trying to replace suid apps with file capabilities, realized that tmpfs,
which is used on the build systems, does not support file capabilities and
thus cannot be used to build packages which use file capabilities.  Xattrs
are also needed for overlayfs.

The xattr interface is a bit odd.  If a filesystem does not implement any
{get,set,list}xattr functions the VFS will call into some random LSM hooks
and the running LSM can then implement some method for handling xattrs.
SELinux for example provides a method to support security.selinux but no
other security.* xattrs.

As it stands today when one enables CONFIG_TMPFS_POSIX_ACL tmpfs will have
xattr handler routines specifically to handle acls.  Because of this tmpfs
would loose the VFS/LSM helpers to support the running LSM.  To make up
for that tmpfs had stub functions that did nothing but call into the LSM
hooks which implement the helpers.

This new patch does not use the LSM fallback functions and instead just
implements a native get/set/list xattr feature for the full security.* and
trusted.* namespace like a normal filesystem.  This means that tmpfs can
now support both security.selinux and security.capability, which was not
previously possible.

The basic implementation is that I attach a:

struct shmem_xattr {
	struct list_head list; /* anchored by shmem_inode_info->xattr_list */
	char *name;
	size_t size;
	char value[0];
};

Into the struct shmem_inode_info for each xattr that is set.  This
implementation could easily support the user.* namespace as well, except
some care needs to be taken to prevent large amounts of unswappable memory
being allocated for unprivileged users.

[mszeredi@suse.cz: new config option, suport trusted.*, support symlinks]
Signed-off-by: Eric Paris <eparis@redhat.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Acked-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Tested-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Acked-by: Hugh Dickins <hughd@google.com>
Tested-by: Jordi Pujol <jordipujolp@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

diff -up linux-2.6.32-431.1.2.el6.1.x86_64/include/linux/shmem_fs.h.tmpfs_xattr linux-2.6.32-431.1.2.el6.1.x86_64/include/linux/shmem_fs.h
--- linux-2.6.32-431.1.2.el6.1.x86_64/include/linux/shmem_fs.h.tmpfs_xattr	2013-11-24 16:08:20.000000000 +0200
+++ linux-2.6.32-431.1.2.el6.1.x86_64/include/linux/shmem_fs.h	2013-12-18 15:48:35.937059497 +0200
@@ -10,14 +10,20 @@
 
 #define SHMEM_NR_DIRECT 16
 
+#define SHMEM_SYMLINK_INLINE_LEN (SHMEM_NR_DIRECT * sizeof(swp_entry_t))
+
 struct shmem_inode_info {
 	spinlock_t		lock;
 	unsigned long		flags;
 	unsigned long		alloced;	/* data pages alloced to file */
 	unsigned long		swapped;	/* subtotal assigned to swap */
 	struct shared_policy	policy;		/* NUMA memory alloc policy */
-	swp_entry_t		i_direct[SHMEM_NR_DIRECT]; /* first blocks */
+	union {
+		swp_entry_t	i_direct[SHMEM_NR_DIRECT]; /* first blocks */
+		char		inline_symlink[SHMEM_SYMLINK_INLINE_LEN];
+	};
 	struct list_head	swaplist;	/* chain of maybes on swap */
+	struct list_head	xattr_list;	/* list of shmem_xattr */
 	struct inode		vfs_inode;
 };
 
diff -up linux-2.6.32-431.1.2.el6.1.x86_64/mm/shmem.c.tmpfs_xattr linux-2.6.32-431.1.2.el6.1.x86_64/mm/shmem.c
--- linux-2.6.32-431.1.2.el6.1.x86_64/mm/shmem.c.tmpfs_xattr	2013-11-24 16:09:05.000000000 +0200
+++ linux-2.6.32-431.1.2.el6.1.x86_64/mm/shmem.c	2013-12-18 15:51:26.668044388 +0200
@@ -74,6 +74,13 @@ static struct vfsmount *shm_mnt;
 /* Pretend that each entry is of this size in directory's i_size */
 #define BOGO_DIRENT_SIZE 20
 
+struct shmem_xattr {
+	struct list_head list;	/* anchored by shmem_inode_info->xattr_list */
+	char *name;		/* xattr name */
+	size_t size;
+	char value[0];
+};
+
 /* Flag allocation requirements to shmem_getpage */
 enum sgp_type {
 	SGP_READ,	/* don't exceed i_size, don't allocate page */
@@ -542,6 +549,7 @@ static int shmem_setattr(struct dentry *
 static void shmem_delete_inode(struct inode *inode)
 {
 	struct shmem_inode_info *info = SHMEM_I(inode);
+	struct shmem_xattr *xattr, *nxattr;
 
 	if (inode->i_mapping->a_ops == &shmem_aops) {
 		shmem_unacct_size(info->flags, inode->i_size);
@@ -553,6 +561,11 @@ static void shmem_delete_inode(struct in
 			mutex_unlock(&shmem_swaplist_mutex);
 		}
 	}
+
+	list_for_each_entry_safe(xattr, nxattr, &info->xattr_list, list) {
+		kfree(xattr->name);
+		kfree(xattr);
+	}
 	BUG_ON(inode->i_blocks);
 	shmem_free_inode(inode->i_sb);
 	clear_inode(inode);
@@ -1102,6 +1115,7 @@ static struct inode *shmem_get_inode(str
 		spin_lock_init(&info->lock);
 		info->flags = flags & VM_NORESERVE;
 		INIT_LIST_HEAD(&info->swaplist);
+		INIT_LIST_HEAD(&info->xattr_list);
 		cache_no_acl(inode);
 
 		switch (mode & S_IFMT) {
@@ -1598,9 +1612,9 @@ static int shmem_symlink(struct inode *d
 
 	info = SHMEM_I(inode);
 	inode->i_size = len-1;
-	if (len <= (char *)inode - (char *)info) {
+	if (len <= SHMEM_SYMLINK_INLINE_LEN) {
 		/* do it inline */
-		memcpy(info, symname, len);
+		memcpy(info->inline_symlink, symname, len);
 		inode->i_op = &shmem_symlink_inline_operations;
 	} else {
 		error = shmem_getpage(inode, 0, &page, SGP_WRITE, NULL);
@@ -1628,7 +1642,7 @@ static int shmem_symlink(struct inode *d
 
 static void *shmem_follow_link_inline(struct dentry *dentry, struct nameidata *nd)
 {
-	nd_set_link(nd, (char *)SHMEM_I(dentry->d_inode));
+	nd_set_link(nd, SHMEM_I(dentry->d_inode)->inline_symlink);
 	return NULL;
 }
 
@@ -1652,63 +1666,253 @@ static void shmem_put_link(struct dentry
 	}
 }
 
-static const struct inode_operations shmem_symlink_inline_operations = {
-	.readlink	= generic_readlink,
-	.follow_link	= shmem_follow_link_inline,
-};
-
-static const struct inode_operations shmem_symlink_inode_operations = {
-	.truncate	= shmem_truncate,
-	.readlink	= generic_readlink,
-	.follow_link	= shmem_follow_link,
-	.put_link	= shmem_put_link,
-};
-
-#ifdef CONFIG_TMPFS_POSIX_ACL
+#ifdef CONFIG_TMPFS
 /*
- * Superblocks without xattr inode operations will get security.* xattr
- * support from the VFS "for free". As soon as we have any other xattrs
+ * Superblocks without xattr inode operations may get some security.* xattr
+ * support from the LSM "for free". As soon as we have any other xattrs
  * like ACLs, we also need to implement the security.* handlers at
  * filesystem level, though.
  */
 
-static size_t shmem_xattr_security_list(struct inode *inode, char *list,
-					size_t list_len, const char *name,
-					size_t name_len)
+static int shmem_xattr_get(struct dentry *dentry, const char *name,
+			   void *buffer, size_t size)
 {
-	return security_inode_listsecurity(inode, list, list_len);
-}
+	struct shmem_inode_info *info;
+	struct shmem_xattr *xattr;
+	int ret = -ENODATA;
 
-static int shmem_xattr_security_get(struct inode *inode, const char *name,
-				    void *buffer, size_t size)
-{
-	if (strcmp(name, "") == 0)
-		return -EINVAL;
-	return xattr_getsecurity(inode, name, buffer, size);
+	info = SHMEM_I(dentry->d_inode);
+
+	spin_lock(&info->lock);
+	list_for_each_entry(xattr, &info->xattr_list, list) {
+		if (strcmp(name, xattr->name))
+			continue;
+
+		ret = xattr->size;
+		if (buffer) {
+			if (size < xattr->size)
+				ret = -ERANGE;
+			else
+				memcpy(buffer, xattr->value, xattr->size);
+		}
+		break;
+	}
+	spin_unlock(&info->lock);
+	return ret;
 }
 
-static int shmem_xattr_security_set(struct inode *inode, const char *name,
-				    const void *value, size_t size, int flags)
+static int shmem_xattr_set(struct dentry *dentry, const char *name,
+			   const void *value, size_t size, int flags)
 {
-	if (strcmp(name, "") == 0)
-		return -EINVAL;
-	return security_inode_setsecurity(inode, name, value, size, flags);
+	struct inode *inode = dentry->d_inode;
+	struct shmem_inode_info *info = SHMEM_I(inode);
+	struct shmem_xattr *xattr;
+	struct shmem_xattr *new_xattr = NULL;
+	size_t len;
+	int err = 0;
+
+	/* value == NULL means remove */
+	if (value) {
+		/* wrap around? */
+		len = sizeof(*new_xattr) + size;
+		if (len <= sizeof(*new_xattr))
+			return -ENOMEM;
+
+		new_xattr = kmalloc(len, GFP_KERNEL);
+		if (!new_xattr)
+			return -ENOMEM;
+
+		new_xattr->name = kstrdup(name, GFP_KERNEL);
+		if (!new_xattr->name) {
+			kfree(new_xattr);
+			return -ENOMEM;
+		}
+
+		new_xattr->size = size;
+		memcpy(new_xattr->value, value, size);
+	}
+
+	spin_lock(&info->lock);
+	list_for_each_entry(xattr, &info->xattr_list, list) {
+		if (!strcmp(name, xattr->name)) {
+			if (flags & XATTR_CREATE) {
+				xattr = new_xattr;
+				err = -EEXIST;
+			} else if (new_xattr) {
+				list_replace(&xattr->list, &new_xattr->list);
+			} else {
+				list_del(&xattr->list);
+			}
+			goto out;
+		}
+	}
+	if (flags & XATTR_REPLACE) {
+		xattr = new_xattr;
+		err = -ENODATA;
+	} else {
+		list_add(&new_xattr->list, &info->xattr_list);
+		xattr = NULL;
+	}
+out:
+	spin_unlock(&info->lock);
+	if (xattr)
+		kfree(xattr->name);
+	kfree(xattr);
+	return err;
 }
 
-static struct xattr_handler shmem_xattr_security_handler = {
-	.prefix = XATTR_SECURITY_PREFIX,
-	.list   = shmem_xattr_security_list,
-	.get    = shmem_xattr_security_get,
-	.set    = shmem_xattr_security_set,
-};
 
 static struct xattr_handler *shmem_xattr_handlers[] = {
+#ifdef CONFIG_TMPFS_POSIX_ACL
 	&shmem_xattr_acl_access_handler,
 	&shmem_xattr_acl_default_handler,
-	&shmem_xattr_security_handler,
+#endif
 	NULL
 };
+
+static int shmem_xattr_validate(const char *name)
+{
+	struct { const char *prefix; size_t len; } arr[] = {
+		{ XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN },
+		{ XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN }
+	};
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(arr); i++) {
+		size_t preflen = arr[i].len;
+		if (strncmp(name, arr[i].prefix, preflen) == 0) {
+			if (!name[preflen])
+				return -EINVAL;
+			return 0;
+		}
+	}
+	return -EOPNOTSUPP;
+}
+
+static ssize_t shmem_getxattr(struct dentry *dentry, const char *name,
+			      void *buffer, size_t size)
+{
+	int err;
+
+	/*
+	 * If this is a request for a synthetic attribute in the system.*
+	 * namespace use the generic infrastructure to resolve a handler
+	 * for it via sb->s_xattr.
+	 */
+	if (!strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
+		return generic_getxattr(dentry, name, buffer, size);
+
+	err = shmem_xattr_validate(name);
+	if (err)
+		return err;
+
+	return shmem_xattr_get(dentry, name, buffer, size);
+}
+
+static int shmem_setxattr(struct dentry *dentry, const char *name,
+			  const void *value, size_t size, int flags)
+{
+	int err;
+
+	/*
+	 * If this is a request for a synthetic attribute in the system.*
+	 * namespace use the generic infrastructure to resolve a handler
+	 * for it via sb->s_xattr.
+	 */
+	if (!strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
+		return generic_setxattr(dentry, name, value, size, flags);
+
+	err = shmem_xattr_validate(name);
+	if (err)
+		return err;
+
+	if (size == 0)
+		value = "";  /* empty EA, do not remove */
+
+	return shmem_xattr_set(dentry, name, value, size, flags);
+
+}
+
+static int shmem_removexattr(struct dentry *dentry, const char *name)
+{
+	int err;
+
+	/*
+	 * If this is a request for a synthetic attribute in the system.*
+	 * namespace use the generic infrastructure to resolve a handler
+	 * for it via sb->s_xattr.
+	 */
+	if (!strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
+		return generic_removexattr(dentry, name);
+
+	err = shmem_xattr_validate(name);
+	if (err)
+		return err;
+
+	return shmem_xattr_set(dentry, name, NULL, 0, XATTR_REPLACE);
+}
+
+static bool xattr_is_trusted(const char *name)
+{
+	return !strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN);
+}
+
+static ssize_t shmem_listxattr(struct dentry *dentry, char *buffer, size_t size)
+{
+	bool trusted = capable(CAP_SYS_ADMIN);
+	struct shmem_xattr *xattr;
+	struct shmem_inode_info *info;
+	size_t used = 0;
+
+	info = SHMEM_I(dentry->d_inode);
+
+	spin_lock(&info->lock);
+	list_for_each_entry(xattr, &info->xattr_list, list) {
+		size_t len;
+
+		/* skip "trusted." attributes for unprivileged callers */
+		if (!trusted && xattr_is_trusted(xattr->name))
+			continue;
+
+		len = strlen(xattr->name) + 1;
+		used += len;
+		if (buffer) {
+			if (size < used) {
+				used = -ERANGE;
+				break;
+			}
+			memcpy(buffer, xattr->name, len);
+			buffer += len;
+		}
+	}
+	spin_unlock(&info->lock);
+
+	return used;
+}
+#endif /* CONFIG_TMPFS */
+
+static const struct inode_operations shmem_symlink_inline_operations = {
+	.readlink	= generic_readlink,
+	.follow_link	= shmem_follow_link_inline,
+#ifdef CONFIG_TMPFS
+	.setxattr	= shmem_setxattr,
+	.getxattr	= shmem_getxattr,
+	.listxattr	= shmem_listxattr,
+	.removexattr	= shmem_removexattr,
+#endif
+};
+
+static const struct inode_operations shmem_symlink_inode_operations = {
+	.readlink	= generic_readlink,
+	.follow_link	= shmem_follow_link,
+	.put_link	= shmem_put_link,
+#ifdef CONFIG_TMPFS
+	.setxattr	= shmem_setxattr,
+	.getxattr	= shmem_getxattr,
+	.listxattr	= shmem_listxattr,
+	.removexattr	= shmem_removexattr,
 #endif
+};
 
 static struct dentry *shmem_get_parent(struct dentry *child)
 {
@@ -1991,8 +2195,10 @@ int shmem_fill_super(struct super_block 
 	sb->s_magic = TMPFS_MAGIC;
 	sb->s_op = &shmem_ops;
 	sb->s_time_gran = 1;
-#ifdef CONFIG_TMPFS_POSIX_ACL
+#ifdef CONFIG_TMPFS
 	sb->s_xattr = shmem_xattr_handlers;
+#endif
+#ifdef CONFIG_TMPFS_POSIX_ACL
 	sb->s_flags |= MS_POSIXACL;
 #endif
 
@@ -2082,11 +2288,13 @@ static const struct inode_operations shm
 	.truncate	= shmem_truncate,
 	.setattr	= shmem_setattr,
 	.truncate_range	= shmem_truncate_range,
+#ifdef CONFIG_TMPFS
+	.setxattr	= shmem_setxattr,
+	.getxattr	= shmem_getxattr,
+	.listxattr	= shmem_listxattr,
+	.removexattr	= shmem_removexattr,
+#endif
 #ifdef CONFIG_TMPFS_POSIX_ACL
-	.setxattr	= generic_setxattr,
-	.getxattr	= generic_getxattr,
-	.listxattr	= generic_listxattr,
-	.removexattr	= generic_removexattr,
 	.check_acl	= shmem_check_acl,
 #endif
 
@@ -2103,24 +2311,26 @@ static const struct inode_operations shm
 	.rmdir		= shmem_rmdir,
 	.mknod		= shmem_mknod,
 	.rename		= shmem_rename,
+	.setxattr	= shmem_setxattr,
+	.getxattr	= shmem_getxattr,
+	.listxattr	= shmem_listxattr,
+	.removexattr	= shmem_removexattr,
 #endif
 #ifdef CONFIG_TMPFS_POSIX_ACL
 	.setattr	= shmem_setattr,
-	.setxattr	= generic_setxattr,
-	.getxattr	= generic_getxattr,
-	.listxattr	= generic_listxattr,
-	.removexattr	= generic_removexattr,
 	.check_acl	= shmem_check_acl,
 #endif
 };
 
 static const struct inode_operations shmem_special_inode_operations = {
+#ifdef CONFIG_TMPFS
+	.setxattr	= shmem_setxattr,
+	.getxattr	= shmem_getxattr,
+	.listxattr	= shmem_listxattr,
+	.removexattr	= shmem_removexattr,
+#endif
 #ifdef CONFIG_TMPFS_POSIX_ACL
 	.setattr	= shmem_setattr,
-	.setxattr	= generic_setxattr,
-	.getxattr	= generic_getxattr,
-	.listxattr	= generic_listxattr,
-	.removexattr	= generic_removexattr,
 	.check_acl	= shmem_check_acl,
 #endif
 };
bleve

bleve

2013-12-19 09:18

reporter   ~0018700

Unfortunately the patch from that gist is incomplete and doesn't provide security xattrs support. I did new backport, that has bee tested to work with 2.6.32-431.1.2.el6.
toracat

toracat

2013-12-19 15:40

manager   ~0018702

@bleve

Thanks a bunch for the patch. Will try to get it into the next kernel update (after I digest it :).
toracat

toracat

2014-01-03 21:57

manager   ~0018773

kernel 2.6.32-431.3.1 is out upstream. The patch submitted by bleve is now in the plus kernel.
toracat

toracat

2014-01-27 17:10

manager   ~0019133

Add a new patch from bug #6938 to the next kernel update.
toracat

toracat

2014-02-11 19:19

manager   ~0019260

kernel 2.6.32-431.5.1 is out upstream. The patch from bug #6938 has been added.
toracat

toracat

2014-02-25 23:26

manager   ~0019371

Add a new patch from bug #6752.
toracat

toracat

2014-02-27 14:02

manager   ~0019388

A new patch candidate; bug #6949
toracat

toracat

2014-03-26 14:55

manager   ~0019560

kernel 2.6.32-431.11.2.el6 is out. Patches from bugs #6752 and #6949 have been added to the plus kernel.
toracat

toracat

2014-03-29 17:50

manager   ~0019576

Next kernel update -> check bugs #7048 #7055
toracat

toracat

2014-05-07 20:00

manager   ~0019740

kernel-2.6.32-431.17.1.el6 is out. The patch in #7048 is in this kernel, so no need to add it. The config change requested in #7055 has been made.
toracat

toracat

2014-05-13 22:39

manager   ~0019754

Consider adding a patch from bug#7119 if the next kernel update does not include it.
toracat

toracat

2014-06-19 17:47

manager   ~0019965

kernel-2.6.32-431.20.3.el6 is out.

(1) The following patch is now in the distro kernel:

numasched_cpu_power_BZ1065304_bug-bug6949.patch (bug #6949)

(2) bug #7119 is already resolved.
toracat

toracat

2014-06-27 17:22

manager   ~0020097

Consider adding a patch from bug#7270 in the next update.
toracat

toracat

2014-07-15 22:57

manager   ~0020439

Add a patch from bug #7378 to the next kernel update (if not in the distro kernel).
toracat

toracat

2014-07-31 11:44

manager   ~0020554

kernel-2.6.32-431.20.5.el6 was released on 2014-07-23 which addressed bug #7378. The plus kernel included the patch from bug #7270.
toracat

toracat

2014-08-20 16:44

manager   ~0020721

Add a patch from bug #7519 in the next update.
toracat

toracat

2014-09-10 15:51

manager   ~0020884

kernel-2.6.32-431.29.2.el6 was released. The plus kernel includes the patch from bug #7519.
toracat

toracat

2014-10-19 00:04

manager   ~0021185

RHEL 6.6 is out. The kernel is 2.6.32-504.el6.

Of the centos patches, the following 5 are now in the 6.6 distro kernel:
bug #6104
bug #5526
bug #6548
bug #6752
bug #7519

There are 9 patches remaining in the plus kernel.

centos-linux-2.6-bonding-fix-802.3ad.patch
centos-linux-2.6-dm9601-bug7270.patch
centos-linux-2.6-fix-fadvise-for-tmpfs-bug6938.patch
centos-linux-2.6-fs-tmpfs-add-xattrs-support-bug4586.18700.patch
centos-linux-2.6-hid-non-LogiTech-remote-bug5780.patch
centos-linux-2.6-jfs-bug5453.patch
centos-linux-2.6-sysfs-fix-printk-warnings-bug6157.patch
centos-linux-2.6-tomoyo-fix-race-on-updating-profile-comment-bug5378.patch
centos-linux-2.6-tomoyo-use-UMH_WAIT_PROC-constant-bug5588.patch
toracat

toracat

2014-11-03 07:11

manager   ~0021516

Add a patch from bug #7815.
toracat

toracat

2014-11-11 17:49

manager   ~0021636

kernel-2.6.32-504.1.3.el6 is out. The patch from bug #7815 is included in the plus kernel.
toracat

toracat

2014-11-17 17:13

manager   ~0021724

Last edited: 2014-11-25 13:34

View 2 revisions

Add a patch from bug #7882 http://bugs.centos.org/view.php?id=7882. (numa)

toracat

toracat

2014-11-25 13:33

manager   ~0021805

Last edited: 2014-12-16 17:02

View 3 revisions

Consider the patch provided in http://bugs.centos.org/view.php?id=7538 . (cgroup)

toracat

toracat

2014-11-26 22:51

manager   ~0021823

Last edited: 2014-11-26 22:57

View 2 revisions

Disable BRIDGE_IGMP_SNOOPING in the config ( http://bugs.centos.org/view.php?id=7796 ). (ipv6)

Networking support -> Networking options -> 802.1d Ethernet Bridging -> IGMP/MLD snooping

@@ -943,7 +943,7 @@
 CONFIG_STP=m
 CONFIG_GARP=m
 CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_BRIDGE_IGMP_SNOOPING is not set
 CONFIG_NET_DSA=y
 CONFIG_NET_DSA_TAG_DSA=y
 CONFIG_NET_DSA_TAG_EDSA=y

toracat

toracat

2014-12-16 17:11

manager   ~0021970

Consider adding a patch from http://bugs.centos.org/view.php?id=7051 .
toracat

toracat

2014-12-16 21:00

manager   ~0021979

kernel-2.6.32-504.3.3.el6 is out upstream. The plus kernel now has patches from #7051, #7538 and #7882. BRIDGE_IGMP_SNOOPING is disabled in the config.
toracat

toracat

2014-12-19 18:05

manager   ~0022013

Apply a patch from http://bugs.centos.org/view.php?id=8016 in the next kernel update.
toracat

toracat

2015-01-11 18:44

manager   ~0022107

Add (back) IRDA support (regression) as per http://bugs.centos.org/view.php?id=8070 .
toracat

toracat

2015-01-27 20:50

manager   ~0022231

Last edited: 2015-01-27 21:05

View 2 revisions

CentOS-6 kernel-2.6.32-504.8.1.el6 now has the fix for bug #7815. The patch removed from the plus kernel as of this version.

toracat

toracat

2015-01-30 02:10

manager   ~0022265

Bugs #8016 and #8070 have been taken care of in kernel-2.6.32-504.8.1.el6.centos.plus.x86_64.rpm.
toracat

toracat

2015-06-09 03:38

manager   ~0023343

Need to re-enable BRIDGE_IGMP_SNOOPING? See bugs #8862 and #7796.
toracat

toracat

2015-06-09 16:54

manager   ~0023353

kernel-2.6.32-504.23.4.el6 is out upstream.

Patch from bug #7051 is now in the distro kernel.
BRIDGE_IGMP_SNOOPING is re-enabled in this version of the plus kernel.
toracat

toracat

2015-07-22 15:56

manager   ~0023692

RHEL 6.7 is out today. The GA kernel is kernel-2.6.32-573.el6. There is also an update, kernel-2.6.32-573.1.1.el6.
toracat

toracat

2015-07-22 20:48

manager   ~0023694

The following bug fixes are now in the 6.7 GA distro kernel, so removed from the plus kernel:

bug#7538 fix-cgroup-close-race
bug#7882 perf-bench-numa-warnings
bonding-fix-802.3ad.patch (no bug#)
toracat

toracat

2015-07-22 21:22

manager   ~0023695

Last edited: 2015-07-22 21:46

View 2 revisions

* Building reiserfs.ko under 6.7 produces this error:

In file included from fs/reiserfs/bitmap.c:7:
include/linux/reiserfs_fs.h:1305:1: error: "U32_MAX" redefined

Probably something similar to the patch for 7.1 will work (see http://bugs.centos.org/view.php?id=6828#c22479 )

toracat

toracat

2016-01-21 21:01

manager   ~0025458

Add the patch from https://bugs.centos.org/view.php?id=10073 (filed for C7 but applies cleanly on C6 -- thanks to tru_tru for this info).
toracat

toracat

2016-01-21 21:57

manager   ~0025462

Possibly incorporate the config change in https://bugs.centos.org/view.php?id=9209 .
toracat

toracat

2016-02-21 04:20

manager   ~0025791

kernel-2.6.32-573.18.1.el6.centos.plus now has the patch from bug #10073 and CONFIG_DRM_I915_UMS disabled (bug #9209).
toracat

toracat

2016-04-19 16:15

manager   ~0026323

Apply the patch from https://bugs.centos.org/view.php?id=10727 in the next update.
toracat

toracat

2016-05-03 19:42

manager   ~0026413

kernel 2.6.32-573.26.1.el6 is out upstream. The patch referenced in this bug report is in this update, so no need to be added to the plus kernel.
toracat

toracat

2016-10-27 15:28

manager   ~0027802

Apply the patch from https://bugs.centos.org/view.php?id=12164 in the next kernel update.
toracat

toracat

2016-11-16 00:03

manager   ~0027900

The patch from bug #12164 is in kernel-2.6.32-642.11.1.el6.
toracat

toracat

2018-05-07 22:06

manager   ~0031728

Last edited: 2018-05-21 23:50

View 2 revisions

Add a patch from https://bugs.centos.org/view.php?id=14747 (Allow cdc-acm driver to recognize Adafruit Flora).

[EDIT] kernel-2.6.32-696.28.1.el6.centos.plus.x86_64.rpm has been released with the requested change.

Issue History

Date Modified Username Field Change
2010-11-11 17:05 toracat New Issue
2010-11-11 17:06 toracat Relationship added related to 0004100
2010-11-13 02:18 toracat Note Added: 0012048
2010-11-14 22:29 toracat Note Added: 0012050
2010-11-14 22:29 toracat Note Edited: 0012050
2010-11-14 23:23 toracat Note Added: 0012051
2010-11-15 00:46 toracat Note Added: 0012052
2010-11-15 19:01 toracat Note Added: 0012055
2010-11-22 15:58 toracat Note Added: 0012094
2010-11-22 16:25 toracat Note Added: 0012095
2010-12-07 21:19 toracat Status new => assigned
2010-12-07 21:19 toracat Category => ConsoleKit
2010-12-07 22:19 toracat Status assigned => confirmed
2010-12-07 22:37 toracat Category ConsoleKit => CentOS-6-Plus
2010-12-08 17:38 toracat Status confirmed => assigned
2010-12-14 13:26 customerjoe Note Added: 0012233
2010-12-14 15:46 toracat Note Added: 0012234
2010-12-16 22:40 toracat Relationship added parent of 0004681
2010-12-18 22:20 toracat Relationship added parent of 0004687
2010-12-18 22:21 toracat Note Added: 0012252
2011-01-13 16:35 toracat Note Added: 0012342
2011-01-27 16:45 toracat Note Added: 0012381
2011-02-22 18:44 toracat Note Added: 0012438
2011-02-26 02:33 toracat Note Added: 0012446
2011-03-08 20:24 toracat Note Added: 0012498
2011-03-09 19:03 toracat Note Added: 0012502
2011-03-23 23:33 toracat Relationship added parent of 0004747
2011-03-23 23:34 toracat Relationship deleted parent of 0004747
2011-03-31 15:26 toracat Note Added: 0012563
2011-04-08 16:24 toracat Note Added: 0012585
2011-04-08 23:41 toracat Note Added: 0012587
2011-04-09 13:37 toracat Note Added: 0012588
2011-04-12 17:35 toracat Relationship added related to 0004806
2011-04-29 01:49 toracat Note Added: 0012693
2011-05-11 05:56 toracat Note Added: 0012729
2011-05-11 05:56 toracat Relationship added parent of 0004864
2011-05-11 05:57 toracat Relationship deleted related to 0004806
2011-05-11 05:58 toracat Relationship added parent of 0004806
2011-05-20 00:53 toracat Note Added: 0012763
2011-05-23 07:35 toracat Note Added: 0012774
2011-06-27 15:29 toracat Note Added: 0012855
2011-06-27 15:38 toracat Note Added: 0012856
2011-06-30 01:43 toracat Note Added: 0012871
2011-06-30 04:32 toracat Note Added: 0012872
2011-07-01 15:54 toracat Note Added: 0012876
2011-07-02 01:57 toracat Note Added: 0012877
2011-07-09 20:58 toracat Product Version => 6.1
2011-08-24 15:10 toracat Relationship added parent of 0005054
2011-08-24 15:14 toracat Note Added: 0013154
2011-10-03 14:39 mickylmartin Note Added: 0013445
2011-10-03 15:46 toracat Note Added: 0013447
2011-10-03 15:48 toracat Note Edited: 0013447 View Revisions
2011-11-02 12:15 toracat Relationship added parent of 0005219
2011-11-02 12:17 toracat Note Added: 0013694
2011-11-22 16:05 toracat Note Added: 0013808
2011-11-23 21:23 toracat Note Added: 0013824
2011-12-17 17:32 toracat Note Added: 0013939
2011-12-29 02:20 toracat Relationship added parent of 0005378
2011-12-29 02:21 toracat Note Added: 0014078
2012-01-06 02:31 amcrory File Added: kernel-jfs.patch.txt
2012-01-06 02:33 amcrory Note Added: 0014113
2012-01-06 02:56 toracat Note Added: 0014114
2012-01-06 17:22 amcrory Note Added: 0014117
2012-01-24 20:30 toracat Note Added: 0014310
2012-01-24 20:43 toracat Relationship added parent of 0005397
2012-01-24 20:43 toracat Relationship added parent of 0005453
2012-01-30 17:26 toracat Note Added: 0014369
2012-02-14 00:07 toracat Note Added: 0014466
2012-03-06 21:28 toracat Note Added: 0014621
2012-03-12 18:42 toracat Note Added: 0014661
2012-04-17 17:54 toracat Note Added: 0014839
2012-04-19 00:42 toracat Note Added: 0014850
2012-05-05 20:29 toracat Relationship added parent of 0005709
2012-05-05 20:30 toracat Note Added: 0015032
2012-05-16 13:36 toracat Note Added: 0015090
2012-06-18 16:27 toracat Note Edited: 0015090 View Revisions
2012-06-18 16:28 toracat Note Edited: 0015090 View Revisions
2012-06-18 16:30 toracat Note Added: 0015281
2012-06-21 00:15 toracat Note Added: 0015295
2012-07-07 21:07 toracat Note Added: 0015371
2012-07-08 15:52 tigalch Product Version 6.1 => 6.3
2012-07-09 15:43 toracat Note Added: 0015379
2012-07-10 13:55 toracat Note Added: 0015389
2012-07-13 20:55 toracat Note Edited: 0015371 View Revisions
2012-07-19 22:28 toracat Note Added: 0015517
2012-07-26 04:35 toracat Note Added: 0015550
2012-07-26 10:54 toracat Note Added: 0015553
2012-07-28 10:59 toracat Note Added: 0015561
2012-07-28 11:02 toracat Note Edited: 0015561 View Revisions
2012-07-28 11:08 toracat Note Edited: 0015553 View Revisions
2012-08-14 20:29 toracat Note Added: 0015653
2012-09-17 03:11 toracat Note Added: 0015786
2012-09-25 20:56 toracat Note Added: 0015824
2012-10-13 17:59 toracat Note Added: 0015927
2012-10-16 15:22 toracat Note Added: 0015945
2012-12-12 16:20 toracat Note Added: 0016135
2012-12-18 22:44 toracat Note Added: 0016152
2012-12-29 17:44 toracat Note Added: 0016212
2013-02-07 16:03 toracat Note Added: 0016454
2013-02-21 19:12 toracat Note Added: 0016521
2013-02-27 00:11 toracat Note Added: 0016543
2013-02-27 00:13 toracat Note Added: 0016544
2013-03-05 08:41 toracat Note Added: 0016597
2013-03-08 16:12 toracat Note Added: 0016623
2013-03-12 17:37 toracat Note Added: 0016677
2013-03-13 18:09 toracat Note Added: 0016696
2013-03-29 12:56 toracat Note Added: 0017040
2013-05-29 16:09 toracat Note Added: 0017517
2013-07-01 16:21 toracat Note Added: 0017613
2013-07-16 17:55 toracat Note Added: 0017686
2013-08-01 16:11 toracat Note Added: 0017760
2013-08-19 21:31 toracat Note Edited: 0017760 View Revisions
2013-08-27 20:39 toracat Note Added: 0017902
2013-10-19 16:04 toracat Note Added: 0018197
2013-11-22 20:50 toracat Note Added: 0018388
2013-12-15 20:44 toracat Note Added: 0018669
2013-12-15 21:07 toracat Note Edited: 0018669 View Revisions
2013-12-19 09:15 bleve File Added: fs-tmpfs-add-xattrs-support.patch
2013-12-19 09:18 bleve Note Added: 0018700
2013-12-19 15:40 toracat Note Added: 0018702
2014-01-03 21:57 toracat Note Added: 0018773
2014-01-27 17:10 toracat Note Added: 0019133
2014-02-11 19:19 toracat Note Added: 0019260
2014-02-25 23:26 toracat Note Added: 0019371
2014-02-27 14:02 toracat Note Added: 0019388
2014-03-26 14:55 toracat Note Added: 0019560
2014-03-29 17:50 toracat Note Added: 0019576
2014-05-07 20:00 toracat Note Added: 0019740
2014-05-13 22:39 toracat Note Added: 0019754
2014-06-19 17:47 toracat Note Added: 0019965
2014-06-27 17:22 toracat Note Added: 0020097
2014-07-15 22:57 toracat Note Added: 0020439
2014-07-31 11:44 toracat Note Added: 0020554
2014-08-20 16:44 toracat Note Added: 0020721
2014-09-10 15:51 toracat Note Added: 0020884
2014-10-19 00:04 toracat Note Added: 0021185
2014-11-03 07:11 toracat Note Added: 0021516
2014-11-11 17:49 toracat Note Added: 0021636
2014-11-17 17:13 toracat Note Added: 0021724
2014-11-25 13:33 toracat Note Added: 0021805
2014-11-25 13:34 toracat Note Edited: 0021724 View Revisions
2014-11-25 13:35 toracat Note Edited: 0021805 View Revisions
2014-11-26 22:51 toracat Note Added: 0021823
2014-11-26 22:57 toracat Note Edited: 0021823 View Revisions
2014-12-16 17:02 toracat Note Edited: 0021805 View Revisions
2014-12-16 17:11 toracat Note Added: 0021970
2014-12-16 21:00 toracat Note Added: 0021979
2014-12-19 18:05 toracat Note Added: 0022013
2015-01-11 18:44 toracat Note Added: 0022107
2015-01-27 20:50 toracat Note Added: 0022231
2015-01-27 21:05 toracat Note Edited: 0022231 View Revisions
2015-01-30 02:10 toracat Note Added: 0022265
2015-06-09 03:38 toracat Note Added: 0023343
2015-06-09 16:54 toracat Note Added: 0023353
2015-07-22 15:56 toracat Note Added: 0023692
2015-07-22 20:48 toracat Note Added: 0023694
2015-07-22 21:22 toracat Note Added: 0023695
2015-07-22 21:46 toracat Note Edited: 0023695 View Revisions
2016-01-21 21:01 toracat Note Added: 0025458
2016-01-21 21:57 toracat Note Added: 0025462
2016-02-21 04:20 toracat Note Added: 0025791
2016-04-19 16:15 toracat Note Added: 0026323
2016-05-03 19:42 toracat Note Added: 0026413
2016-10-27 15:28 toracat Note Added: 0027802
2016-11-16 00:03 toracat Note Added: 0027900
2018-05-07 22:06 toracat Note Added: 0031728
2018-05-21 23:50 toracat Note Edited: 0031728 View Revisions