]> git.neil.brown.name Git - history.git/commitdiff
Import 2.1.45pre9 2.1.45pre9
authorLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:13:34 +0000 (15:13 -0500)
committerLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:13:34 +0000 (15:13 -0500)
fs/inode.c
fs/open.c
fs/super.c

index 6eb923b1a38099495ca6433e9eb909704aa8b251..c5aab1de642601f3f7557b0e8344f9fc64561cb1 100644 (file)
@@ -298,6 +298,7 @@ void clean_inode(struct inode *inode)
        inode->i_op = NULL;
        inode->i_nlink = 0;
        inode->i_writecount = 0;
+       inode->i_size = 0;
        memset(&inode->i_dquot, 0, sizeof(inode->i_dquot));
        sema_init(&inode->i_sem, 1);
 }
index afbacd7246a9af7916bb18385c4686136c56dfc3..628aa00145d1558155d823d818988202370f4daa 100644 (file)
--- a/fs/open.c
+++ b/fs/open.c
@@ -313,15 +313,12 @@ asmlinkage int sys_chdir(const char * filename)
 
        lock_kernel();
        
-       dentry = lookup_dentry(filename, NULL, 1);
+       dentry = namei(filename);
        error = PTR_ERR(dentry);
        if (IS_ERR(dentry))
                goto out;
 
-       error = -ENOENT;
        inode = dentry->d_inode;
-       if (!inode)
-               goto dput_and_out;
 
        error = -ENOTDIR;
        if (!S_ISDIR(inode->i_mode))
@@ -390,15 +387,12 @@ asmlinkage int sys_chroot(const char * filename)
 
        lock_kernel();
        
-       dentry = lookup_dentry(filename, NULL, 1);
+       dentry = namei(filename);
        error = PTR_ERR(dentry);
        if (IS_ERR(dentry))
                goto out;
 
-       error = -ENOENT;
        inode = dentry->d_inode;
-       if (!inode)
-               goto dput_and_out;
 
        error = -ENOTDIR;
        if (!S_ISDIR(inode->i_mode))
index f880ad37b396ee80681ed1a48ac372b29fcce8c1..f143f93487a7f1942a7c555ff138ed9d376487bf 100644 (file)
@@ -728,16 +728,11 @@ int do_mount(kdev_t dev, const char * dev_name, const char * dir_name, const cha
                return -EACCES;
                /*flags |= MS_RDONLY;*/
 
-       dir_d = lookup_dentry(dir_name, NULL, 1);
+       dir_d = namei(dir_name);
        error = PTR_ERR(dir_d);
        if (IS_ERR(dir_d))
                return error;
 
-       if (!dir_d->d_inode) {
-               dput(dir_d);
-               return -ENOENT;
-       }
-
        if (dir_d->d_covers != dir_d) {
                dput(dir_d);
                return -EBUSY;