linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Martin Dalecki <dalecki@evision-ventures.com>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: [PATCH] 2.5.17 sysvipc (AKA: spoiling oil in to the flames)
Date: Thu, 23 May 2002 09:32:02 +0200	[thread overview]
Message-ID: <3CEC9AF2.2010107@evision-ventures.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0205202211040.949-100000@home.transmeta.com>

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

Kill /proc/sysvipc and friends. This is a pure case of interface duplication,
since we have the ipcs command and nice fine /proc/sys/kernel entries for the
relevant stuff... Fortunately apparently nothing is using it.

Fix improper extern inline usage in ipc/utils.h as well as add
some static attributes to local functions found there.

If some "embedded" system user starts to holler about
memory issues. Well:

[root@domek linux]# size /usr/bin/ipcs
    text    data     bss     dec     hex filename
   13433     324      32   13789    35dd /usr/bin/ipcs

And now count the pages used to implement /proc/sysvipc entires +
the few kilbytes of actual code removed from the kernel.

As an added bonus the functions implementing /proc/sysvipc
where accessible by everyone and getting the msg_ide.sem and similar
semaphores for quite a significant amount of time...

Perhaps it is time as well to look at the two different
IPC structures carried around there ("64 bit" and 32 bit)
and the double liked list usage there?

[-- Attachment #2: kill-sysvipc-2.5.17.patch --]
[-- Type: text/plain, Size: 11986 bytes --]

diff -urN linux-2.5.17/fs/proc/root.c linux/fs/proc/root.c
--- linux-2.5.17/fs/proc/root.c	2002-05-21 07:07:42.000000000 +0200
+++ linux/fs/proc/root.c	2002-05-23 07:07:38.000000000 +0200
@@ -53,9 +53,6 @@
 	}
 	proc_misc_init();
 	proc_net = proc_mkdir("net", 0);
-#ifdef CONFIG_SYSVIPC
-	proc_mkdir("sysvipc", 0);
-#endif
 #ifdef CONFIG_SYSCTL
 	proc_sys_root = proc_mkdir("sys", 0);
 #endif
Binary files linux-2.5.17/fs/proc/.root.c.swp and linux/fs/proc/.root.c.swp differ
diff -urN linux-2.5.17/ipc/msg.c linux/ipc/msg.c
--- linux-2.5.17/ipc/msg.c	2002-05-21 07:07:29.000000000 +0200
+++ linux/ipc/msg.c	2002-05-22 22:37:32.000000000 +0200
@@ -8,8 +8,6 @@
  * Fixed up the unchecked user space derefs
  * Copyright (C) 1998 Alan Cox & Andi Kleen
  *
- * /proc/sysvipc/msg support (c) 1999 Dragos Acostachioaie <dragos@iname.com>
- *
  * mostly rewritten, threaded and wake-one semantics added
  * MSGMAX limit removed, sysctl's added
  * (c) 1999 Manfred Spraul <manfreds@colorfullife.com>
@@ -20,9 +18,12 @@
 #include <linux/msg.h>
 #include <linux/spinlock.h>
 #include <linux/init.h>
-#include <linux/proc_fs.h>
 #include <linux/list.h>
+#include <linux/stat.h>
+#include <linux/err.h>
+
 #include <asm/uaccess.h>
+
 #include "util.h"
 
 /* sysctl: */
@@ -54,8 +55,8 @@
 };
 /* one msg_msg structure for each message */
 struct msg_msg {
-	struct list_head m_list; 
-	long  m_type;          
+	struct list_head m_list;
+	long  m_type;
 	int m_ts;           /* message text size */
 	struct msg_msgseg* next;
 	/* the actual message follows immediately */
@@ -101,17 +102,10 @@
 
 static void freeque (int id);
 static int newque (key_t key, int msgflg);
-#ifdef CONFIG_PROC_FS
-static int sysvipc_msg_read_proc(char *buffer, char **start, off_t offset, int length, int *eof, void *data);
-#endif
 
 void __init msg_init (void)
 {
 	ipc_init_ids(&msg_ids,msg_ctlmni);
-
-#ifdef CONFIG_PROC_FS
-	create_proc_read_entry("sysvipc/msg", 0, 0, sysvipc_msg_read_proc, NULL);
-#endif
 }
 
 static int newque (key_t key, int msgflg)
@@ -847,57 +841,3 @@
 		msg_unlock(msqid);
 	return err;
 }
-
-#ifdef CONFIG_PROC_FS
-static int sysvipc_msg_read_proc(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
-{
-	off_t pos = 0;
-	off_t begin = 0;
-	int i, len = 0;
-
-	down(&msg_ids.sem);
-	len += sprintf(buffer, "       key      msqid perms      cbytes       qnum lspid lrpid   uid   gid  cuid  cgid      stime      rtime      ctime\n");
-
-	for(i = 0; i <= msg_ids.max_id; i++) {
-		struct msg_queue * msq;
-		msq = msg_lock(i);
-		if(msq != NULL) {
-			len += sprintf(buffer + len, "%10d %10d  %4o  %10lu %10lu %5u %5u %5u %5u %5u %5u %10lu %10lu %10lu\n",
-				msq->q_perm.key,
-				msg_buildid(i,msq->q_perm.seq),
-				msq->q_perm.mode,
-				msq->q_cbytes,
-				msq->q_qnum,
-				msq->q_lspid,
-				msq->q_lrpid,
-				msq->q_perm.uid,
-				msq->q_perm.gid,
-				msq->q_perm.cuid,
-				msq->q_perm.cgid,
-				msq->q_stime,
-				msq->q_rtime,
-				msq->q_ctime);
-			msg_unlock(i);
-
-			pos += len;
-			if(pos < offset) {
-				len = 0;
-				begin = pos;
-			}
-			if(pos > offset + length)
-				goto done;
-		}
-
-	}
-	*eof = 1;
-done:
-	up(&msg_ids.sem);
-	*start = buffer + (offset - begin);
-	len -= (offset - begin);
-	if(len > length)
-		len = length;
-	if(len < 0)
-		len = 0;
-	return len;
-}
-#endif
diff -urN linux-2.5.17/ipc/sem.c linux/ipc/sem.c
--- linux-2.5.17/ipc/sem.c	2002-05-21 07:07:37.000000000 +0200
+++ linux/ipc/sem.c	2002-05-22 23:01:02.000000000 +0200
@@ -49,8 +49,6 @@
  *      increase. If there are decrement operations in the operations
  *      array we do the same as before.
  *
- * /proc/sysvipc/sem support (c) 1999 Dragos Acostachioaie <dragos@iname.com>
- *
  * SMP-threaded, sysctl's added
  * (c) 1999 Manfred Spraul <manfreds@colorfullife.com>
  * Enforced range limit on SEM_UNDO
@@ -61,9 +59,12 @@
 #include <linux/slab.h>
 #include <linux/spinlock.h>
 #include <linux/init.h>
-#include <linux/proc_fs.h>
 #include <linux/smp_lock.h>
+#include <linux/stat.h>
+#include <linux/err.h>
+
 #include <asm/uaccess.h>
+
 #include "util.h"
 
 
@@ -78,9 +79,6 @@
 
 static int newary (key_t, int, int);
 static void freeary (int id);
-#ifdef CONFIG_PROC_FS
-static int sysvipc_sem_read_proc(char *buffer, char **start, off_t offset, int length, int *eof, void *data);
-#endif
 
 #define SEMMSL_FAST	256 /* 512 bytes on stack */
 #define SEMOPM_FAST	64  /* ~ 372 bytes on stack */
@@ -91,7 +89,7 @@
  *	sem_array.sem_pending{,last},
  *	sem_array.sem_undo: sem_lock() for read/write
  *	sem_undo.proc_next: only "current" is allowed to read/write that field.
- *	
+ *
  */
 
 int sem_ctls[4] = {SEMMSL, SEMMNS, SEMOPM, SEMMNI};
@@ -106,10 +104,6 @@
 {
 	used_sems = 0;
 	ipc_init_ids(&sem_ids,sc_semmni);
-
-#ifdef CONFIG_PROC_FS
-	create_proc_read_entry("sysvipc/sem", 0, 0, sysvipc_sem_read_proc, NULL);
-#endif
 }
 
 static int newary (key_t key, int nsems, int semflg)
@@ -158,7 +152,7 @@
 	if (nsems < 0 || nsems > sc_semmsl)
 		return -EINVAL;
 	down(&sem_ids.sem);
-	
+
 	if (key == IPC_PRIVATE) {
 		err = newary(key, nsems, semflg);
 	} else if ((id = ipc_findkey(&sem_ids, key)) == -1) {  /* key not used */
@@ -321,7 +315,7 @@
 	struct sem_queue * q;
 
 	for (q = sma->sem_pending; q; q = q->next) {
-			
+
 		if (q->status == 1)
 			continue;	/* this one was woken up before */
 
@@ -370,6 +364,7 @@
 	}
 	return semncnt;
 }
+
 static int count_semzcnt (struct sem_array * sma, ushort semnum)
 {
 	int semzcnt;
@@ -441,7 +436,7 @@
 	}
 }
 
-int semctl_nolock(int semid, int semnum, int cmd, int version, union semun arg)
+static int semctl_nolock(int semid, int semnum, int cmd, int version, union semun arg)
 {
 	int err = -EINVAL;
 
@@ -1115,7 +1110,7 @@
 			spin_lock_init(&undo_list->lock);
 		atomic_inc(&undo_list->refcnt);
 		tsk->sysvsem.undo_list = undo_list;
-	} else 
+	} else
 		tsk->sysvsem.undo_list = NULL;
 
 	return 0;
@@ -1226,52 +1221,3 @@
 
 	unlock_kernel();
 }
-
-#ifdef CONFIG_PROC_FS
-static int sysvipc_sem_read_proc(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
-{
-	off_t pos = 0;
-	off_t begin = 0;
-	int i, len = 0;
-
-	len += sprintf(buffer, "       key      semid perms      nsems   uid   gid  cuid  cgid      otime      ctime\n");
-	down(&sem_ids.sem);
-
-	for(i = 0; i <= sem_ids.max_id; i++) {
-		struct sem_array *sma;
-		sma = sem_lock(i);
-		if(sma) {
-			len += sprintf(buffer + len, "%10d %10d  %4o %10lu %5u %5u %5u %5u %10lu %10lu\n",
-				sma->sem_perm.key,
-				sem_buildid(i,sma->sem_perm.seq),
-				sma->sem_perm.mode,
-				sma->sem_nsems,
-				sma->sem_perm.uid,
-				sma->sem_perm.gid,
-				sma->sem_perm.cuid,
-				sma->sem_perm.cgid,
-				sma->sem_otime,
-				sma->sem_ctime);
-			sem_unlock(i);
-
-			pos += len;
-			if(pos < offset) {
-				len = 0;
-	    			begin = pos;
-			}
-			if(pos > offset + length)
-				goto done;
-		}
-	}
-	*eof = 1;
-done:
-	up(&sem_ids.sem);
-	*start = buffer + (offset - begin);
-	len -= (offset - begin);
-	if(len > length)
-		len = length;
-	if(len < 0)
-		len = 0;
-	return len;
-}
-#endif
diff -urN linux-2.5.17/ipc/shm.c linux/ipc/shm.c
--- linux-2.5.17/ipc/shm.c	2002-05-21 07:07:39.000000000 +0200
+++ linux/ipc/shm.c	2002-05-22 22:44:16.000000000 +0200
@@ -22,7 +22,6 @@
 #include <linux/init.h>
 #include <linux/file.h>
 #include <linux/mman.h>
-#include <linux/proc_fs.h>
 #include <linux/shmem_fs.h>
 #include <asm/uaccess.h>
 
@@ -60,9 +59,6 @@
 static int newseg (key_t key, int shmflg, size_t size);
 static void shm_open (struct vm_area_struct *shmd);
 static void shm_close (struct vm_area_struct *shmd);
-#ifdef CONFIG_PROC_FS
-static int sysvipc_shm_read_proc(char *buffer, char **start, off_t offset, int length, int *eof, void *data);
-#endif
 
 size_t	shm_ctlmax = SHMMAX;
 size_t 	shm_ctlall = SHMALL;
@@ -73,9 +69,6 @@
 void __init shm_init (void)
 {
 	ipc_init_ids(&shm_ids, 1);
-#ifdef CONFIG_PROC_FS
-	create_proc_read_entry("sysvipc/shm", 0, 0, sysvipc_shm_read_proc, NULL);
-#endif
 }
 
 static inline int shm_checkid(struct shmid_kernel *s, int id)
@@ -688,65 +681,3 @@
 	up_write(&mm->mmap_sem);
 	return retval;
 }
-
-#ifdef CONFIG_PROC_FS
-static int sysvipc_shm_read_proc(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
-{
-	off_t pos = 0;
-	off_t begin = 0;
-	int i, len = 0;
-
-	down(&shm_ids.sem);
-	len += sprintf(buffer, "       key      shmid perms       size  cpid  lpid nattch   uid   gid  cuid  cgid      atime      dtime      ctime\n");
-
-	for(i = 0; i <= shm_ids.max_id; i++) {
-		struct shmid_kernel* shp;
-
-		shp = shm_lock(i);
-		if(shp!=NULL) {
-#define SMALL_STRING "%10d %10d  %4o %10u %5u %5u  %5d %5u %5u %5u %5u %10lu %10lu %10lu\n"
-#define BIG_STRING   "%10d %10d  %4o %21u %5u %5u  %5d %5u %5u %5u %5u %10lu %10lu %10lu\n"
-			char *format;
-
-			if (sizeof(size_t) <= sizeof(int))
-				format = SMALL_STRING;
-			else
-				format = BIG_STRING;
-			len += sprintf(buffer + len, format,
-				shp->shm_perm.key,
-				shm_buildid(i, shp->shm_perm.seq),
-				shp->shm_flags,
-				shp->shm_segsz,
-				shp->shm_cprid,
-				shp->shm_lprid,
-				shp->shm_nattch,
-				shp->shm_perm.uid,
-				shp->shm_perm.gid,
-				shp->shm_perm.cuid,
-				shp->shm_perm.cgid,
-				shp->shm_atim,
-				shp->shm_dtim,
-				shp->shm_ctim);
-			shm_unlock(i);
-
-			pos += len;
-			if(pos < offset) {
-				len = 0;
-				begin = pos;
-			}
-			if(pos > offset + length)
-				goto done;
-		}
-	}
-	*eof = 1;
-done:
-	up(&shm_ids.sem);
-	*start = buffer + (offset - begin);
-	len -= (offset - begin);
-	if(len > length)
-		len = length;
-	if(len < 0)
-		len = 0;
-	return len;
-}
-#endif
diff -urN linux-2.5.17/ipc/util.h linux/ipc/util.h
--- linux-2.5.17/ipc/util.h	2002-05-21 07:07:40.000000000 +0200
+++ linux/ipc/util.h	2002-05-22 22:55:08.000000000 +0200
@@ -42,15 +42,15 @@
 /* for rare, potentially huge allocations.
  * both function can sleep
  */
-void* ipc_alloc(int size);
-void ipc_free(void* ptr, int size);
+extern void* ipc_alloc(int size);
+extern void ipc_free(void* ptr, int size);
 
-extern inline void ipc_lockall(struct ipc_ids* ids)
+static inline void ipc_lockall(struct ipc_ids* ids)
 {
 	spin_lock(&ids->ary);
 }
 
-extern inline struct kern_ipc_perm* ipc_get(struct ipc_ids* ids, int id)
+static inline struct kern_ipc_perm* ipc_get(struct ipc_ids* ids, int id)
 {
 	struct kern_ipc_perm* out;
 	int lid = id % SEQ_MULTIPLIER;
@@ -61,11 +61,12 @@
 	return out;
 }
 
-extern inline void ipc_unlockall(struct ipc_ids* ids)
+static inline void ipc_unlockall(struct ipc_ids* ids)
 {
 	spin_unlock(&ids->ary);
 }
-extern inline struct kern_ipc_perm* ipc_lock(struct ipc_ids* ids, int id)
+
+static inline struct kern_ipc_perm* ipc_lock(struct ipc_ids* ids, int id)
 {
 	struct kern_ipc_perm* out;
 	int lid = id % SEQ_MULTIPLIER;
@@ -79,28 +80,28 @@
 	return out;
 }
 
-extern inline void ipc_unlock(struct ipc_ids* ids, int id)
+static inline void ipc_unlock(struct ipc_ids* ids, int id)
 {
 	spin_unlock(&ids->ary);
 }
 
-extern inline int ipc_buildid(struct ipc_ids* ids, int id, int seq)
+static inline int ipc_buildid(struct ipc_ids* ids, int id, int seq)
 {
 	return SEQ_MULTIPLIER*seq + id;
 }
 
-extern inline int ipc_checkid(struct ipc_ids* ids, struct kern_ipc_perm* ipcp, int uid)
+static inline int ipc_checkid(struct ipc_ids* ids, struct kern_ipc_perm* ipcp, int uid)
 {
 	if(uid/SEQ_MULTIPLIER != ipcp->seq)
 		return 1;
 	return 0;
 }
 
-void kernel_to_ipc64_perm(struct kern_ipc_perm *in, struct ipc64_perm *out);
-void ipc64_perm_to_ipc_perm(struct ipc64_perm *in, struct ipc_perm *out);
+extern void kernel_to_ipc64_perm(struct kern_ipc_perm *in, struct ipc64_perm *out);
+extern void ipc64_perm_to_ipc_perm(struct ipc64_perm *in, struct ipc_perm *out);
 
 #ifdef __ia64__
-  /* On IA-64, we always use the "64-bit version" of the IPC structures.  */ 
+  /* On IA-64, we always use the "64-bit version" of the IPC structures.  */
 # define ipc_parse_version(cmd)	IPC_64
 #else
 int ipc_parse_version (int *cmd);

  parent reply	other threads:[~2002-05-23  8:35 UTC|newest]

Thread overview: 131+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-05-21  5:16 Linux-2.5.17 Linus Torvalds
2002-05-21 13:58 ` Linux-2.5.17 Roman Zippel
2002-05-21 16:06   ` Linux-2.5.17 Linus Torvalds
2002-05-21 18:36     ` Linux-2.5.17 Roman Zippel
2002-05-21 18:53       ` Linux-2.5.17 Linus Torvalds
2002-05-21 23:35         ` Linux-2.5.17 Roman Zippel
2002-05-22  0:10           ` Linux-2.5.17 Linus Torvalds
2002-05-22  0:31             ` Linux-2.5.17 Roman Zippel
2002-05-22  0:54               ` Linux-2.5.17 Linus Torvalds
2002-05-22  2:17                 ` Linux-2.5.17 David S. Miller
2002-05-22  2:40                   ` Linux-2.5.17 Linus Torvalds
2002-05-22  2:57                     ` Linux-2.5.17 David S. Miller
2002-05-22  3:21                       ` Linux-2.5.17 Linus Torvalds
2002-05-22  8:06                         ` Linux-2.5.17 David Lang
2002-05-22 14:14                         ` Linux-2.5.17 Dave McCracken
2002-05-22 16:10                           ` Linux-2.5.17 Linus Torvalds
2002-05-22 13:45                 ` Linux-2.5.17 Roman Zippel
2002-05-22 16:08                   ` Linux-2.5.17 Linus Torvalds
2002-05-21 15:32 ` [PATCH] 2.5.17 IDE 65 Martin Dalecki
2002-05-21 16:59   ` Linus Torvalds
2002-05-21 16:35     ` Martin Dalecki
2002-05-21 17:56       ` Linus Torvalds
2002-05-21 18:49         ` Alan Cox
2002-05-21 20:08         ` Vojtech Pavlik
2002-05-21 23:28           ` Linus Torvalds
2002-05-22  6:53             ` Martin Dalecki
2002-05-23  7:01               ` Kai Henningsen
2002-05-22  7:16 ` [PATCH] 2.5.17 IDE 66 Martin Dalecki
2002-05-22  7:19 ` [PATCH] 2.5.17 IDE 67 Martin Dalecki
2002-05-22 17:13   ` Tom Rini
2002-05-22 16:21     ` Martin Dalecki
2002-05-22 17:31       ` Tom Rini
2002-05-22 16:40         ` Martin Dalecki
2002-05-22 18:47           ` Tom Rini
2002-05-23  6:08             ` Martin Dalecki
2002-05-23 15:26               ` Tom Rini
2002-05-23 14:32                 ` Martin Dalecki
2002-05-23 15:40                   ` Tom Rini
2002-05-22  7:23 ` [PATCH] 2.5.16 IDE 68 Martin Dalecki
2002-05-22 10:48   ` Juan Quintela
2002-05-22  9:45     ` Martin Dalecki
2002-05-22 15:55   ` Linus Torvalds
2002-05-22 15:03     ` Martin Dalecki
2002-05-22  9:05 ` [PATCH] 2.5.17 /dev/ports Martin Dalecki
2002-05-22 10:42   ` Paul Mackerras
2002-05-22  9:46     ` Martin Dalecki
2002-05-22 10:54     ` David S. Miller
2002-05-22 10:13       ` Martin Dalecki
2002-05-22 11:26         ` Russell King
2002-05-22 10:40           ` Martin Dalecki
2002-05-22 11:58             ` Richard B. Johnson
2002-05-22 12:36             ` Russell King
2002-05-22 13:23               ` Alan Cox
2002-05-22 12:31                 ` Martin Dalecki
2002-05-22 12:44           ` Alan Cox
2002-05-22 12:32             ` Martin Dalecki
2002-05-22 15:05               ` Alan Cox
2002-05-22 13:05       ` Alan Cox
2002-05-22 12:38         ` Martin Dalecki
2002-05-22 15:04           ` Alan Cox
2002-05-22 13:53             ` Martin Dalecki
2002-05-22 15:03               ` Lars Marowsky-Bree
2002-05-22 15:07               ` Padraig Brady
2002-05-22 14:07                 ` Martin Dalecki
2002-05-22 15:21                   ` Dave Jones
2002-05-22 15:19               ` Dave Jones
2002-05-22 15:31               ` Alan Cox
2002-05-27  9:04               ` Pavel Machek
2002-05-22 14:54             ` Alexander Viro
2002-05-22 15:24               ` Alan Cox
2002-05-22 15:10                 ` Alexander Viro
2002-07-22 12:20                   ` Ruth Ivimey-Cook
2002-05-23  7:30               ` Rusty Russell
2002-05-23  6:44                 ` Martin Dalecki
2002-05-23  8:26                   ` Rusty Russell
2002-05-22 13:16   ` Padraig Brady
2002-05-22 12:30     ` Martin Dalecki
2002-05-22 13:50       ` Sebastian Droege
2002-05-22 13:52     ` Alan Cox
2002-05-22 13:49       ` Vojtech Pavlik
2002-05-22 12:51         ` Martin Dalecki
2002-05-22 13:56           ` Vojtech Pavlik
2002-05-22 14:58             ` Alan Cox
2002-05-22 13:49               ` Martin Dalecki
2002-05-22 14:42               ` Vojtech Pavlik
2002-05-22 13:59           ` Alexander Viro
2002-05-22 13:12             ` Martin Dalecki
2002-05-22 14:33               ` Alexander Viro
2002-05-22 13:40                 ` Martin Dalecki
2002-05-22 13:16             ` Martin Dalecki
2002-05-22 14:34               ` Alexander Viro
2002-05-22 16:31               ` James Simmons
2002-05-22 14:12             ` Vojtech Pavlik
2002-05-27  9:07             ` Pavel Machek
2002-05-22 15:00         ` Alan Cox
2002-05-22 14:43           ` Vojtech Pavlik
2002-05-22 16:28   ` Linus Torvalds
2002-05-22 17:22     ` Alan Cox
2002-05-22 16:17       ` Martin Dalecki
2002-05-22 17:30         ` Russell King
2002-05-22 16:36           ` Martin Dalecki
2002-05-22 17:36           ` Alexander Viro
2002-05-22 17:46         ` Alan Cox
2002-05-26 13:53         ` Riley Williams
2002-05-26 15:28           ` Vojtech Pavlik
2002-05-26 15:39             ` Riley Williams
2002-05-23 10:10     ` Martin Diehl
2002-05-22 10:54 ` Linux-2.5.17 Martin Dalecki
2002-05-22 12:04   ` Linux-2.5.17 Alexander Viro
2002-05-22 13:07     ` Linux-2.5.17 Martin Dalecki
2002-05-22 14:38       ` Linux-2.5.17 Alexander Viro
2002-05-22 13:42         ` Linux-2.5.17 Martin Dalecki
2002-05-22 16:55       ` Linux-2.5.17 Jan Kara
2002-05-22 12:14   ` Linux-2.5.17 Russell King
2002-05-22 12:36     ` Linux-2.5.17 Martin Dalecki
2002-05-22 16:02     ` Linux-2.5.17 Linus Torvalds
2002-05-22 15:04       ` Linux-2.5.17 Martin Dalecki
2002-05-22 16:58         ` Linux-2.5.17 Jan Kara
2002-05-22 16:08           ` Linux-2.5.17 Martin Dalecki
2002-05-22 17:56             ` Linux-2.5.17 Jan Kara
2002-05-22 16:56               ` Linux-2.5.17 Martin Dalecki
2002-05-22 18:17                 ` Linux-2.5.17 Jan Kara
2002-05-22 18:36                   ` Linux-2.5.17 Russell King
2002-05-22 13:06   ` Linux-2.5.17 Alan Cox
2002-05-22 11:19 ` Linux-2.5.17 Russell King
2002-05-22 11:27   ` Linux-2.5.17 David S. Miller
2002-05-22 16:23   ` Linux-2.5.17 Linus Torvalds
2002-05-22 17:31 ` [PATCH] 2.5.17 IDE 69 Martin Dalecki
2002-05-23  7:32 ` Martin Dalecki [this message]
2002-05-24 13:59 ` Linux-2.5.17 Martin Dalecki
2002-05-24 14:23 ` [PATCH] 2.5.17 IDE 70 Martin Dalecki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3CEC9AF2.2010107@evision-ventures.com \
    --to=dalecki@evision-ventures.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@transmeta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).