public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Size-128 slab leak
@ 2006-01-31  2:49 Kevin O'Connor
  2006-02-02  7:10 ` Andrew Morton
  0 siblings, 1 reply; 9+ messages in thread
From: Kevin O'Connor @ 2006-01-31  2:49 UTC (permalink / raw)
  To: linux-kernel; +Cc: jgarzik

[-- Attachment #1: Type: text/plain, Size: 872 bytes --]

Hi,

I have an annoying slab leak on my kernel.  Every day, I lose about
50Megs of memory to the leak.  It seems to be related to disk
accesses, because the count only goes up noticeable around 4:00am when
the system locate utility runs.

I can tell there is a leak because /proc/slabinfo shows "size-128"
growing continuously.  For example, it currently reads:

size-128          4086041 4106550    128   30    1 : tunables  120   60    8 : slabdata 136885 136885      0

The machine is a vanilla lkml kernel:

Linux double 2.6.15 #1 SMP Wed Jan 4 23:13:51 EST 2006 x86_64 x86_64 x86_64 GNU/Linux

I've noticed this bug on a 2.6.14 kernel also.  This machine is using
libata (sata_uli) along with reiserfs, ext3, and lvm.  I'm interested
in finding ways of diagnosing this problem.  I can provide more
information on demand.  Please CC me on any replies.

Thanks,
-Kevin

[-- Attachment #2: lspci-20060130 --]
[-- Type: text/plain, Size: 1672 bytes --]

00:00.0 Host bridge: ALi Corporation M1695 K8 Northbridge [PCI Express and HyperTransport]
00:01.0 PCI bridge: ALi Corporation: Unknown device 524b
00:02.0 PCI bridge: ALi Corporation: Unknown device 524c
00:04.0 Host bridge: ALi Corporation M1689 K8 Northbridge [Super K8 Single Chip]
00:05.0 PCI bridge: ALi Corporation AGP8X Controller
00:06.0 PCI bridge: ALi Corporation M5249 HTT to PCI Bridge
00:07.0 ISA bridge: ALi Corporation M1563 HyperTransport South Bridge (rev 70)
00:07.1 Bridge: ALi Corporation M7101 Power Management Controller [PMU]
00:08.0 Multimedia audio controller: ALi Corporation M5455 PCI AC-Link Controller Audio Device (rev 20)
00:11.0 Ethernet controller: ALi Corporation M5263 Ethernet Controller (rev 40)
00:12.0 IDE interface: ALi Corporation M5229 IDE (rev c7)
00:12.1 IDE interface: ALi Corporation ULi 5289 SATA (rev 10)
00:13.0 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)
00:13.1 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)
00:13.2 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)
00:13.3 USB Controller: ALi Corporation USB 2.0 Controller (rev 01)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
03:00.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200 PRO] (rev 01)
03:00.1 Display controller: ATI Technologies Inc: Unknown device 5940 (rev 01)

[-- Attachment #3: cpuinfo-20060130 --]
[-- Type: text/plain, Size: 1276 bytes --]

processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 15
model		: 43
model name	: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
stepping	: 1
cpu MHz		: 1000.051
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 2
fpu		: yes
fpu_exception	: yes
cpuid level	: 1
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm cmp_legacy
bogomips	: 2002.42
TLB size	: 1024 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: ts fid vid ttp

processor	: 1
vendor_id	: AuthenticAMD
cpu family	: 15
model		: 43
model name	: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
stepping	: 1
cpu MHz		: 1000.051
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 1
cpu cores	: 2
fpu		: yes
fpu_exception	: yes
cpuid level	: 1
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm cmp_legacy
bogomips	: 2002.42
TLB size	: 1024 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: ts fid vid ttp


[-- Attachment #4: lsmod-20060130 --]
[-- Type: text/plain, Size: 2883 bytes --]

Module                  Size  Used by
cramfs                 46144  1 
loop                   19472  2 
ppp_deflate             8192  0 
zlib_deflate           26016  1 ppp_deflate
ppp_async              15488  0 
crc_ccitt               3200  1 ppp_async
ppp_generic            36384  2 ppp_deflate,ppp_async
slhc                    8960  1 ppp_generic
vfat                   17152  0 
fat                    60976  1 vfat
usb_storage            86592  0 
snd_rtctimer            4888  0 
udf                    92064  1 
nls_utf8                3328  0 
ipaq                   40880  0 
usbserial              38612  1 ipaq
radeon                119584  1 
drm                   100776  2 radeon
ipv6                  311680  14 
parport_pc             33900  0 
lp                     16960  0 
parport                46604  2 parport_pc,lp
autofs4                25608  1 
w83627hf               35344  0 
hwmon_vid               3712  1 w83627hf
hwmon                   4616  1 w83627hf
eeprom                  9744  0 
i2c_isa                 7552  1 w83627hf
i2c_dev                14208  0 
i2c_core               27904  4 w83627hf,eeprom,i2c_isa,i2c_dev
sunrpc                184504  1 
pcmcia                 48816  0 
yenta_socket           31628  0 
rsrc_nonstatic         15872  1 yenta_socket
pcmcia_core            50228  3 pcmcia,yenta_socket,rsrc_nonstatic
reiserfs              285688  2 
video                  20488  0 
button                  8992  0 
battery                12168  0 
ac                      6792  0 
ohci_hcd               24708  0 
ehci_hcd               38920  0 
shpchp                 53888  0 
snd_intel8x0           39592  0 
snd_ac97_codec        117180  1 snd_intel8x0
snd_ac97_bus            3840  1 snd_ac97_codec
snd_seq_dummy           5380  0 
snd_seq_oss            41700  0 
snd_seq_midi_event     10368  1 snd_seq_oss
snd_seq                70616  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device         12048  3 snd_seq_dummy,snd_seq_oss,snd_seq
snd_pcm_oss            63264  0 
snd_mixer_oss          21632  1 snd_pcm_oss
snd_pcm               111624  3 snd_intel8x0,snd_ac97_codec,snd_pcm_oss
snd_timer              30600  3 snd_rtctimer,snd_seq,snd_pcm
snd                    73696  9 snd_intel8x0,snd_ac97_codec,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
soundcore              13088  1 snd
snd_page_alloc         13840  2 snd_intel8x0,snd_pcm
uli526x                21268  0 
dm_snapshot            18768  0 
dm_zero                 2816  0 
dm_mirror              25320  0 
ext3                  152848  2 
jbd                    68904  1 ext3
dm_mod                 69064  8 dm_snapshot,dm_zero,dm_mirror
sata_uli                8964  1 
libata                 67224  1 sata_uli
sd_mod                 21632  1 
scsi_mod              166712  3 usb_storage,libata,sd_mod

[-- Attachment #5: slabinfo-20060130.gz --]
[-- Type: application/x-gzip, Size: 2415 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Size-128 slab leak
  2006-01-31  2:49 Size-128 slab leak Kevin O'Connor
@ 2006-02-02  7:10 ` Andrew Morton
  2006-02-02  7:32   ` Pekka Enberg
  2006-02-03  4:00   ` Kevin O'Connor
  0 siblings, 2 replies; 9+ messages in thread
From: Andrew Morton @ 2006-02-02  7:10 UTC (permalink / raw)
  To: Kevin O'Connor; +Cc: linux-kernel, jgarzik

"Kevin O'Connor" <kevin@koconnor.net> wrote:
>
> I have an annoying slab leak on my kernel.  Every day, I lose about
>  50Megs of memory to the leak.  It seems to be related to disk
>  accesses, because the count only goes up noticeable around 4:00am when
>  the system locate utility runs.
> 
>  I can tell there is a leak because /proc/slabinfo shows "size-128"
>  growing continuously.  For example, it currently reads:
> 
>  size-128          4086041 4106550    128   30    1 : tunables  120   60    8 : slabdata 136885 136885      0
> 
>  The machine is a vanilla lkml kernel:
> 
>  Linux double 2.6.15 #1 SMP Wed Jan 4 23:13:51 EST 2006 x86_64 x86_64 x86_64 GNU/Linux
> 
>  I've noticed this bug on a 2.6.14 kernel also.  This machine is using
>  libata (sata_uli) along with reiserfs, ext3, and lvm.  I'm interested
>  in finding ways of diagnosing this problem.

-mm kernels have a patch (slab-leak-detector.patch) which will help. 
Here's a version for 2.6.16-rc1.  It requires CONFIG_DEBUG_SLAB.  Thanks.


From: Manfred Spraul <manfred@colorfullife.com>

Maintenance work from Alexander Nyberg <alexn@telia.com>

With the patch applied,

	echo "size-4096 0 0 0" > /proc/slabinfo

walks the objects in the size-4096 slab, printing out the calling address
of whoever allocated that object.

It is for leak detection.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 mm/slab.c |   46 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 43 insertions(+), 3 deletions(-)

diff -puN mm/slab.c~slab-leak-detector mm/slab.c
--- devel/mm/slab.c~slab-leak-detector	2006-02-01 23:05:08.000000000 -0800
+++ devel-akpm/mm/slab.c	2006-02-01 23:07:43.000000000 -0800
@@ -198,7 +198,7 @@
  * is less than 512 (PAGE_SIZE<<3), but greater than 256.
  */
 
-typedef unsigned int kmem_bufctl_t;
+typedef unsigned long kmem_bufctl_t;
 #define BUFCTL_END	(((kmem_bufctl_t)(~0U))-0)
 #define BUFCTL_FREE	(((kmem_bufctl_t)(~0U))-1)
 #define	SLAB_LIMIT	(((kmem_bufctl_t)(~0U))-2)
@@ -2393,7 +2393,7 @@ static void check_slabp(kmem_cache_t *ca
 		     i < sizeof(slabp) + cachep->num * sizeof(kmem_bufctl_t);
 		     i++) {
 			if ((i % 16) == 0)
-				printk("\n%03x:", i);
+				printk("\n%04lx:", i);
 			printk(" %02x", ((unsigned char *)slabp)[i]);
 		}
 		printk("\n");
@@ -2550,6 +2550,15 @@ static void *cache_alloc_debugcheck_afte
 		*dbg_redzone1(cachep, objp) = RED_ACTIVE;
 		*dbg_redzone2(cachep, objp) = RED_ACTIVE;
 	}
+	{
+		int objnr;
+		struct slab *slabp;
+
+		slabp = page_get_slab(virt_to_page(objp));
+
+		objnr = (objp - slabp->s_mem) / cachep->objsize;
+		slab_bufctl(slabp)[objnr] = (unsigned long)caller;
+	}
 	objp += obj_dbghead(cachep);
 	if (cachep->ctor && cachep->flags & SLAB_POISON) {
 		unsigned long ctor_flags = SLAB_CTOR_CONSTRUCTOR;
@@ -2691,7 +2700,7 @@ static void free_block(kmem_cache_t *cac
 		check_spinlock_acquired_node(cachep, node);
 		check_slabp(cachep, slabp);
 
-#if DEBUG
+#if 0
 		/* Verify that the slab belongs to the intended node */
 		WARN_ON(slabp->nodeid != node);
 
@@ -3573,6 +3582,36 @@ struct seq_operations slabinfo_op = {
 	.show = s_show,
 };
 
+static void do_dump_slabp(kmem_cache_t *cachep)
+{
+#if DEBUG
+	struct list_head *q;
+	int node;
+
+	check_irq_on();
+	spin_lock_irq(&cachep->spinlock);
+	for_each_online_node(node) {
+		struct kmem_list3 *rl3 = cachep->nodelists[node];
+		spin_lock(&rl3->list_lock);
+
+		list_for_each(q, &rl3->slabs_full) {
+			int i;
+			struct slab *slabp = list_entry(q, struct slab, list);
+
+			for (i = 0; i < cachep->num; i++) {
+				unsigned long sym = slab_bufctl(slabp)[i];
+
+				printk("obj %p/%d: %p", slabp, i, (void *)sym);
+				print_symbol(" <%s>", sym);
+				printk("\n");
+			}
+		}
+		spin_unlock(&rl3->list_lock);
+	}
+	spin_unlock_irq(&cachep->spinlock);
+#endif
+}
+
 #define MAX_SLABINFO_WRITE 128
 /**
  * slabinfo_write - Tuning for the slab allocator
@@ -3612,6 +3651,7 @@ ssize_t slabinfo_write(struct file *file
 			if (limit < 1 ||
 			    batchcount < 1 ||
 			    batchcount > limit || shared < 0) {
+				do_dump_slabp(cachep);
 				res = 0;
 			} else {
 				res = do_tune_cpucache(cachep, limit,
_


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Size-128 slab leak
  2006-02-02  7:10 ` Andrew Morton
@ 2006-02-02  7:32   ` Pekka Enberg
  2006-02-03  6:21     ` Manfred Spraul
  2006-02-03  4:00   ` Kevin O'Connor
  1 sibling, 1 reply; 9+ messages in thread
From: Pekka Enberg @ 2006-02-02  7:32 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Kevin O'Connor, linux-kernel, jgarzik, manfred

Hi,

On 2/2/06, Andrew Morton <akpm@osdl.org> wrote:
> @@ -2550,6 +2550,15 @@ static void *cache_alloc_debugcheck_afte
>                 *dbg_redzone1(cachep, objp) = RED_ACTIVE;
>                 *dbg_redzone2(cachep, objp) = RED_ACTIVE;
>         }
> +       {
> +               int objnr;
> +               struct slab *slabp;
> +
> +               slabp = page_get_slab(virt_to_page(objp));
> +
> +               objnr = (objp - slabp->s_mem) / cachep->objsize;
> +               slab_bufctl(slabp)[objnr] = (unsigned long)caller;
> +       }

We already have last caller in dbg_userword. Manfred, is there a
reason we're not using it?

                               Pekka

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Size-128 slab leak
  2006-02-02  7:10 ` Andrew Morton
  2006-02-02  7:32   ` Pekka Enberg
@ 2006-02-03  4:00   ` Kevin O'Connor
  2006-02-03 13:21     ` Stephen Smalley
  1 sibling, 1 reply; 9+ messages in thread
From: Kevin O'Connor @ 2006-02-03  4:00 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, jgarzik, sds, jmorris

On Wed, Feb 01, 2006 at 11:10:01PM -0800, Andrew Morton wrote:
> "Kevin O'Connor" <kevin@koconnor.net> wrote:
> >
> > I have an annoying slab leak on my kernel.  Every day, I lose about
> >  50Megs of memory to the leak.  It seems to be related to disk
> >  accesses, because the count only goes up noticeable around 4:00am when
> >  the system locate utility runs.
> > 
> >  I can tell there is a leak because /proc/slabinfo shows "size-128"
> >  growing continuously.  For example, it currently reads:
>
> -mm kernels have a patch (slab-leak-detector.patch) which will help. 
> Here's a version for 2.6.16-rc1.  It requires CONFIG_DEBUG_SLAB.  Thanks.

Thanks Andrew.

I've applied the patch and found the leak.  It's in kzalloc.  :-)

With kzalloc inlined, however, it appears that selinux is the likely
culprit.  I would not have expected that.

After running updatedb I got 23530 occurrences of:

kernel: obj ffff81003f04f000/12: ffffffff801ed7b7 <selinux_inode_alloc_security+0x37/0x100>

I'm not sure how to debug selinux issues, but at least I can disable
it.

-Kevin

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Size-128 slab leak
  2006-02-02  7:32   ` Pekka Enberg
@ 2006-02-03  6:21     ` Manfred Spraul
  0 siblings, 0 replies; 9+ messages in thread
From: Manfred Spraul @ 2006-02-03  6:21 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: Andrew Morton, Kevin O'Connor, linux-kernel, jgarzik

Pekka Enberg wrote:

>We already have last caller in dbg_userword. Manfred, is there a
>reason we're not using it?
>
>  
>
IIRC only due to historical reasons: dbg_userword is newer than this patch.

--
    Manfred

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Size-128 slab leak
  2006-02-03  4:00   ` Kevin O'Connor
@ 2006-02-03 13:21     ` Stephen Smalley
  2006-02-03 15:13       ` James Morris
                         ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Stephen Smalley @ 2006-02-03 13:21 UTC (permalink / raw)
  To: Kevin O'Connor
  Cc: Chris Wright, Jeff Mahoney, Andrew Morton, linux-kernel, jgarzik,
	jmorris

On Thu, 2006-02-02 at 23:00 -0500, Kevin O'Connor wrote:
> Thanks Andrew.
> 
> I've applied the patch and found the leak.  It's in kzalloc.  :-)
> 
> With kzalloc inlined, however, it appears that selinux is the likely
> culprit.  I would not have expected that.
> 
> After running updatedb I got 23530 occurrences of:
> 
> kernel: obj ffff81003f04f000/12: ffffffff801ed7b7 <selinux_inode_alloc_security+0x37/0x100>
> 
> I'm not sure how to debug selinux issues, but at least I can disable
> it.

Hmm...that allocation call occurs upon alloc_inode() via
security_inode_alloc, and the associated free call occurs upon
destroy_inode() via security_inode_free.  However, when Jeff Mahoney
introduced the support for "private inodes" (S_PRIVATE flag) to support
reiserfs xattrs-as-files, he added the IS_PRIVATE guards to both
security_inode_alloc and security_inode_free.  I think that this ends up
causing SELinux to allocate a security structure for every reiserfs
inode including private inodes since they are not marked until later by
reiserfs, while preventing SELinux from ever freeing the security
structure for the private inodes.  Note that
selinux_inode_free_security() should be safe even for the private
inodes, as it doesn't assume any other initialization beyond the
allocation-time initialization.  Patch below.  

BTW, Jeff - I assume you know about the unrelated breakage in
SELinux/reiserfs support that was introduced by the changes for atomic
security labeling of inodes in 2.6.14.  If you care, you might want to
use the same workaround upstreamed for xfs for 2.6.16.  But I understand
that SELinux is not a priority in SuSE presently.

BTW, Chris - are you still serving as LSM maintainer?  MAINTAINERS still
lists your osdl address.

---

Remove private inode tests from security_inode_alloc and security_inode_free,
as we otherwise end up leaking inode security structures for private inodes.

Signed-off-by:  Stephen Smalley <sds@tycho.nsa.gov>

---

 include/linux/security.h |    4 ----
 1 file changed, 4 deletions(-)

Index: linux-2.6/include/linux/security.h
===================================================================
RCS file: /nfshome/pal/CVS/linux-2.6/include/linux/security.h,v
retrieving revision 1.50
diff -u -p -r1.50 security.h
--- linux-2.6/include/linux/security.h	3 Jan 2006 16:36:48 -0000	1.50
+++ linux-2.6/include/linux/security.h	3 Feb 2006 12:50:57 -0000
@@ -1437,15 +1437,11 @@ static inline void security_sb_post_pivo
 
 static inline int security_inode_alloc (struct inode *inode)
 {
-	if (unlikely (IS_PRIVATE (inode)))
-		return 0;
 	return security_ops->inode_alloc_security (inode);
 }
 
 static inline void security_inode_free (struct inode *inode)
 {
-	if (unlikely (IS_PRIVATE (inode)))
-		return;
 	security_ops->inode_free_security (inode);
 }
 


-- 
Stephen Smalley
National Security Agency


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Size-128 slab leak
  2006-02-03 13:21     ` Stephen Smalley
@ 2006-02-03 15:13       ` James Morris
  2006-02-04  1:13       ` Kevin O'Connor
  2006-02-14  4:52       ` Jeffrey Mahoney
  2 siblings, 0 replies; 9+ messages in thread
From: James Morris @ 2006-02-03 15:13 UTC (permalink / raw)
  To: Stephen Smalley
  Cc: Kevin O'Connor, Chris Wright, Jeff Mahoney, Andrew Morton,
	linux-kernel, jgarzik

On Fri, 3 Feb 2006, Stephen Smalley wrote:

> Signed-off-by:  Stephen Smalley <sds@tycho.nsa.gov>

Acked-by: James Morris <jmorris@namei.org>


-- 
James Morris
<jmorris@namei.org>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Size-128 slab leak
  2006-02-03 13:21     ` Stephen Smalley
  2006-02-03 15:13       ` James Morris
@ 2006-02-04  1:13       ` Kevin O'Connor
  2006-02-14  4:52       ` Jeffrey Mahoney
  2 siblings, 0 replies; 9+ messages in thread
From: Kevin O'Connor @ 2006-02-04  1:13 UTC (permalink / raw)
  To: Stephen Smalley; +Cc: Andrew Morton, linux-kernel, jmorris

On Fri, Feb 03, 2006 at 08:21:12AM -0500, Stephen Smalley wrote:
> On Thu, 2006-02-02 at 23:00 -0500, Kevin O'Connor wrote:
> > After running updatedb I got 23530 occurrences of:
> > 
> > kernel: obj ffff81003f04f000/12: ffffffff801ed7b7 <selinux_inode_alloc_security+0x37/0x100>
> > 
> Hmm...that allocation call occurs upon alloc_inode() via
> security_inode_alloc, and the associated free call occurs upon
> destroy_inode() via security_inode_free.  However, when Jeff Mahoney
> introduced the support for "private inodes" (S_PRIVATE flag) to support
> reiserfs xattrs-as-files, he added the IS_PRIVATE guards to both
> security_inode_alloc and security_inode_free.  I think that this ends up
> causing SELinux to allocate a security structure for every reiserfs
> inode including private inodes since they are not marked until later by
> reiserfs, while preventing SELinux from ever freeing the security
> structure for the private inodes.  Note that
> selinux_inode_free_security() should be safe even for the private
> inodes, as it doesn't assume any other initialization beyond the
> allocation-time initialization.  Patch below.  

Hi Stephen,

I've applied your patch.  It seems to be working.  (Multiple runs of
updatedb no longer grow the size-128 slab.)

Thanks,
-Kevin

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Size-128 slab leak
  2006-02-03 13:21     ` Stephen Smalley
  2006-02-03 15:13       ` James Morris
  2006-02-04  1:13       ` Kevin O'Connor
@ 2006-02-14  4:52       ` Jeffrey Mahoney
  2 siblings, 0 replies; 9+ messages in thread
From: Jeffrey Mahoney @ 2006-02-14  4:52 UTC (permalink / raw)
  To: Stephen Smalley
  Cc: Kevin O'Connor, Chris Wright, Andrew Morton, linux-kernel,
	jgarzik, jmorris

Stephen Smalley wrote:
> BTW, Jeff - I assume you know about the unrelated breakage in
> SELinux/reiserfs support that was introduced by the changes for atomic
> security labeling of inodes in 2.6.14.  If you care, you might want to
> use the same workaround upstreamed for xfs for 2.6.16.  But I understand
> that SELinux is not a priority in SuSE presently.

Hi Stephen -

Thanks for the reminder on this one. I have a series of patches that
rework the reiserfs xattr implementation. One of the patches adds
journalling for xattrs, including putting the inherited ACLs in the same
transaction as the object creation. Adding the SELinux attribute to the
same transaction wouldn't be too much of a problem.

I should have a patch tomorrow, though it will depend on the xattr patchset.

-Jeff

--
Jeff Mahoney
SUSE Labs

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2006-02-14  4:52 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-31  2:49 Size-128 slab leak Kevin O'Connor
2006-02-02  7:10 ` Andrew Morton
2006-02-02  7:32   ` Pekka Enberg
2006-02-03  6:21     ` Manfred Spraul
2006-02-03  4:00   ` Kevin O'Connor
2006-02-03 13:21     ` Stephen Smalley
2006-02-03 15:13       ` James Morris
2006-02-04  1:13       ` Kevin O'Connor
2006-02-14  4:52       ` Jeffrey Mahoney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox