fs-writeback: Add helper function to start writeback if idle
[safe/jmp/linux-2.6] / fs / hpfs / namei.c
index d9c59a7..82b9c4b 100644 (file)
@@ -6,6 +6,7 @@
  *  adding & removing files & directories
  */
 #include <linux/sched.h>
+#include <linux/smp_lock.h>
 #include "hpfs_fn.h"
 
 static int hpfs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
@@ -92,11 +93,11 @@ static int hpfs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
        inc_nlink(dir);
        insert_inode_hash(result);
 
-       if (result->i_uid != current->fsuid ||
-           result->i_gid != current->fsgid ||
+       if (result->i_uid != current_fsuid() ||
+           result->i_gid != current_fsgid() ||
            result->i_mode != (mode | S_IFDIR)) {
-               result->i_uid = current->fsuid;
-               result->i_gid = current->fsgid;
+               result->i_uid = current_fsuid();
+               result->i_gid = current_fsgid();
                result->i_mode = mode | S_IFDIR;
                hpfs_write_inode_nolock(result);
        }
@@ -184,11 +185,11 @@ static int hpfs_create(struct inode *dir, struct dentry *dentry, int mode, struc
 
        insert_inode_hash(result);
 
-       if (result->i_uid != current->fsuid ||
-           result->i_gid != current->fsgid ||
+       if (result->i_uid != current_fsuid() ||
+           result->i_gid != current_fsgid() ||
            result->i_mode != (mode | S_IFREG)) {
-               result->i_uid = current->fsuid;
-               result->i_gid = current->fsgid;
+               result->i_uid = current_fsuid();
+               result->i_gid = current_fsgid();
                result->i_mode = mode | S_IFREG;
                hpfs_write_inode_nolock(result);
        }
@@ -247,8 +248,8 @@ static int hpfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t
        result->i_mtime.tv_nsec = 0;
        result->i_atime.tv_nsec = 0;
        hpfs_i(result)->i_ea_size = 0;
-       result->i_uid = current->fsuid;
-       result->i_gid = current->fsgid;
+       result->i_uid = current_fsuid();
+       result->i_gid = current_fsgid();
        result->i_nlink = 1;
        result->i_size = 0;
        result->i_blocks = 1;
@@ -325,8 +326,8 @@ static int hpfs_symlink(struct inode *dir, struct dentry *dentry, const char *sy
        result->i_atime.tv_nsec = 0;
        hpfs_i(result)->i_ea_size = 0;
        result->i_mode = S_IFLNK | 0777;
-       result->i_uid = current->fsuid;
-       result->i_gid = current->fsgid;
+       result->i_uid = current_fsuid();
+       result->i_gid = current_fsgid();
        result->i_blocks = 1;
        result->i_nlink = 1;
        result->i_size = strlen(symlink);
@@ -669,5 +670,5 @@ const struct inode_operations hpfs_dir_iops =
        .rmdir          = hpfs_rmdir,
        .mknod          = hpfs_mknod,
        .rename         = hpfs_rename,
-       .setattr        = hpfs_notify_change,
+       .setattr        = hpfs_setattr,
 };