]> Pileus Git - ~andy/linux/blobdiff - fs/qnx4/namei.c
Merge branch 'dmaengine' into async-tx-next
[~andy/linux] / fs / qnx4 / namei.c
index 733cdf01d645365a204f57fbd83ddcdee292e608..5972ed21493725d762995d8d8110c8abb0b1529c 100644 (file)
  * 04-07-1998 by Frank Denis : first step for rmdir/unlink.
  */
 
-#include <linux/time.h>
-#include <linux/fs.h>
-#include <linux/qnx4_fs.h>
-#include <linux/kernel.h>
-#include <linux/string.h>
-#include <linux/stat.h>
-#include <linux/fcntl.h>
-#include <linux/errno.h>
 #include <linux/smp_lock.h>
 #include <linux/buffer_head.h>
+#include "qnx4.h"
 
 
 /*
@@ -128,10 +121,12 @@ struct dentry * qnx4_lookup(struct inode *dir, struct dentry *dentry, struct nam
        }
        brelse(bh);
 
-       if ((foundinode = iget(dir->i_sb, ino)) == NULL) {
+       foundinode = qnx4_iget(dir->i_sb, ino);
+       if (IS_ERR(foundinode)) {
                unlock_kernel();
-               QNX4DEBUG(("qnx4: lookup->iget -> NULL\n"));
-               return ERR_PTR(-EACCES);
+               QNX4DEBUG(("qnx4: lookup->iget -> error %ld\n",
+                          PTR_ERR(foundinode)));
+               return ERR_CAST(foundinode);
        }
 out:
        unlock_kernel();
@@ -185,7 +180,7 @@ int qnx4_rmdir(struct inode *dir, struct dentry *dentry)
        de->di_status = 0;
        memset(de->di_fname, 0, sizeof de->di_fname);
        de->di_mode = 0;
-       mark_buffer_dirty(bh);
+       mark_buffer_dirty_inode(bh, dir);
        clear_nlink(inode);
        mark_inode_dirty(inode);
        inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME_SEC;
@@ -230,7 +225,7 @@ int qnx4_unlink(struct inode *dir, struct dentry *dentry)
        de->di_status = 0;
        memset(de->di_fname, 0, sizeof de->di_fname);
        de->di_mode = 0;
-       mark_buffer_dirty(bh);
+       mark_buffer_dirty_inode(bh, dir);
        dir->i_ctime = dir->i_mtime = CURRENT_TIME_SEC;
        mark_inode_dirty(dir);
        inode->i_ctime = dir->i_ctime;