[PATCH 2.6.5-mm4] vfs_readdir optimizations

From: Fabian Frederick
Date: Wed Apr 14 2004 - 14:46:12 EST


-Remove unuseful gotos
-ENOENT case on DEADDIR

PS : mm5 doesn't appear on kernel.org main page.

Regards,
Fabian

diff -Naur orig/fs/readdir.c edited/fs/readdir.c
--- orig/fs/readdir.c 2004-04-04 05:37:06.000000000 +0200
+++ edited/fs/readdir.c 2004-04-12 17:25:36.000000000 +0200
@@ -21,21 +21,16 @@
{
struct inode *inode = file->f_dentry->d_inode;
int res = -ENOTDIR;
- if (!file->f_op || !file->f_op->readdir)
- goto out;
-
- res = security_file_permission(file, MAY_READ);
- if (res)
- goto out;
-
- down(&inode->i_sem);
- res = -ENOENT;
- if (!IS_DEADDIR(inode)) {
- res = file->f_op->readdir(file, buf, filler);
- file_accessed(file);
+ if (file->f_op && file->f_op->readdir){
+ if (!(res = security_file_permission(file, MAY_READ))){
+ down(&inode->i_sem);
+ if (!IS_DEADDIR(inode)) {
+ res = file->f_op->readdir(file, buf, filler);
+ file_accessed(file);
+ }else res = -ENOENT;
+ up(&inode->i_sem);
+ }
}
- up(&inode->i_sem);
-out:
return res;
}