X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=fs%2Fcoda%2Fdir.c;h=3d2580e00a3e272e0cfe04103c98466e2daa15e7;hb=c82dd5321cf779f1f536ef26b383cbe8c9de7f10;hp=04a3dd84c99340d6875a97702bd3ad5577553e83;hpb=f745bb1c73e2395e6b9961d4d915a8f8e2cd32cd;p=linux-2.6-omap-h63xx.git diff --git a/fs/coda/dir.c b/fs/coda/dir.c index 04a3dd84c99..3d2580e00a3 100644 --- a/fs/coda/dir.c +++ b/fs/coda/dir.c @@ -86,7 +86,6 @@ const struct file_operations coda_dir_operations = { .read = generic_read_dir, .readdir = coda_readdir, .open = coda_open, - .flush = coda_flush, .release = coda_release, .fsync = coda_fsync, }; @@ -346,7 +345,7 @@ static int coda_symlink(struct inode *dir_inode, struct dentry *de, } /* destruction routines: unlink, rmdir */ -int coda_unlink(struct inode *dir, struct dentry *de) +static int coda_unlink(struct inode *dir, struct dentry *de) { int error; const char *name = de->d_name.name; @@ -366,7 +365,7 @@ int coda_unlink(struct inode *dir, struct dentry *de) return 0; } -int coda_rmdir(struct inode *dir, struct dentry *de) +static int coda_rmdir(struct inode *dir, struct dentry *de) { const char *name = de->d_name.name; int len = de->d_name.len; @@ -425,7 +424,7 @@ static int coda_rename(struct inode *old_dir, struct dentry *old_dentry, /* file operations for directories */ -int coda_readdir(struct file *coda_file, void *buf, filldir_t filldir) +static int coda_readdir(struct file *coda_file, void *buf, filldir_t filldir) { struct coda_file_info *cfi; struct file *host_file; @@ -510,20 +509,20 @@ static int coda_venus_readdir(struct file *coda_file, void *buf, vdir = kmalloc(sizeof(*vdir), GFP_KERNEL); if (!vdir) return -ENOMEM; - switch (coda_file->f_pos) { - case 0: + if (coda_file->f_pos == 0) { ret = filldir(buf, ".", 1, 0, de->d_inode->i_ino, DT_DIR); - if (ret < 0) break; + if (ret < 0) + goto out; result++; coda_file->f_pos++; - /* fallthrough */ - case 1: + } + if (coda_file->f_pos == 1) { ret = filldir(buf, "..", 2, 1, de->d_parent->d_inode->i_ino, DT_DIR); - if (ret < 0) break; + if (ret < 0) + goto out; result++; coda_file->f_pos++; - /* fallthrough */ - default: + } while (1) { /* read entries from the directory file */ ret = kernel_read(host_file, coda_file->f_pos - 2, (char *)vdir, @@ -578,7 +577,7 @@ static int coda_venus_readdir(struct file *coda_file, void *buf, * we've already established it is non-zero. */ coda_file->f_pos += vdir->d_reclen; } - } +out: kfree(vdir); return result ? result : ret; }