[PATCH] new system call mknod64

From: Andries.Brouwer@cwi.nl
Date: Sun Apr 20 2003 - 13:39:32 EST


Change the type of the mknod arg from dev_t to unsigned int.
Add (for i386) mknod64.

diff -u --recursive --new-file -X /linux/dontdiff a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S
--- a/arch/i386/kernel/entry.S Tue Mar 25 04:54:29 2003
+++ b/arch/i386/kernel/entry.S Sun Apr 20 19:13:34 2003
@@ -852,6 +852,7 @@
          .long sys_clock_gettime /* 265 */
          .long sys_clock_getres
          .long sys_clock_nanosleep
+ .long sys_mknod64
  
  
 nr_syscalls=(.-sys_call_table)/4
diff -u --recursive --new-file -X /linux/dontdiff a/fs/namei.c b/fs/namei.c
--- a/fs/namei.c Sun Apr 20 12:59:32 2003
+++ b/fs/namei.c Sun Apr 20 19:13:34 2003
@@ -1403,11 +1403,12 @@
         return error;
 }
 
-asmlinkage long sys_mknod(const char __user * filename, int mode, dev_t dev)
+static long
+do_mknod(const char __user *filename, int mode, dev_t dev)
 {
         int error = 0;
- char * tmp;
- struct dentry * dentry;
+ char *tmp;
+ struct dentry *dentry;
         struct nameidata nd;
 
         if (S_ISDIR(mode))
@@ -1448,6 +1449,19 @@
         return error;
 }
 
+asmlinkage long
+sys_mknod(const char __user *filename, int mode, unsigned int dev)
+{
+ return do_mknod(filename, mode, dev);
+}
+
+asmlinkage long
+sys_mknod64(const char __user *filename, int mode,
+ unsigned int devhi, unsigned int devlo)
+{
+ return do_mknod(filename, mode, ((u64) devhi << 32) + devlo);
+}
+
 int vfs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
 {
         int error = may_create(dir, dentry);
@@ -2140,8 +2154,8 @@
 {
         struct page * page;
         struct address_space *mapping = dentry->d_inode->i_mapping;
- page = read_cache_page(mapping, 0, (filler_t *)mapping->a_ops->readpage,
- NULL);
+ page = read_cache_page(mapping, 0,
+ (filler_t *)mapping->a_ops->readpage, NULL);
         if (IS_ERR(page))
                 goto sync_fail;
         wait_on_page_locked(page);
diff -u --recursive --new-file -X /linux/dontdiff a/include/asm-i386/unistd.h b/include/asm-i386/unistd.h
--- a/include/asm-i386/unistd.h Mon Feb 24 23:02:56 2003
+++ b/include/asm-i386/unistd.h Sun Apr 20 19:13:34 2003
@@ -273,8 +273,9 @@
 #define __NR_clock_gettime (__NR_timer_create+6)
 #define __NR_clock_getres (__NR_timer_create+7)
 #define __NR_clock_nanosleep (__NR_timer_create+8)
+#define __NR_sys_mknod64 268
 
-#define NR_syscalls 268
+#define NR_syscalls 269
 
 /* user-visible error numbers are in the range -1 - -124: see <asm-i386/errno.h> */
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Apr 23 2003 - 22:00:27 EST