X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fobdfs%2Fdir.c;h=30262e022f64e80285a2b6fa221f4900c7a058ae;hb=86ada49822948e9cf3a8488b3297f111bcaef72e;hp=14150a95d53e5aaef1538ec55ccd07ac65c3b73f;hpb=17eaf7c18899a5fc9027b57d84240cbd2349a6db;p=fs%2Flustre-release.git diff --git a/lustre/obdfs/dir.c b/lustre/obdfs/dir.c index 14150a9..30262e0 100644 --- a/lustre/obdfs/dir.c +++ b/lustre/obdfs/dir.c @@ -26,8 +26,6 @@ #include -#include - #include #include #include @@ -38,16 +36,54 @@ #include #include #include -#include #include +#include -#if 0 static ssize_t obdfs_dir_read (struct file * filp, char * buf, size_t count, loff_t *ppos) { return -EISDIR; } -#endif + +static int obdfs_readdir(struct file *, void *, filldir_t); + +struct file_operations obdfs_dir_operations = { + NULL, /* lseek - default */ + obdfs_dir_read, /* read */ + NULL, /* write - bad */ + obdfs_readdir, /* readdir */ + NULL, /* poll - default */ + NULL, /* ioctl */ + NULL, /* mmap */ + NULL, /* no special open code */ + NULL, /* flush */ + NULL, /* no special release code */ + NULL, /* fsync */ + NULL, /* fasync */ + NULL, /* check_media_change */ + NULL /* revalidate */ +}; + +struct inode_operations obdfs_dir_inode_operations = { + &obdfs_dir_operations, /* default directory file-ops */ + obdfs_create, /* create */ + obdfs_lookup, /* lookup */ + obdfs_link, /* link */ + obdfs_unlink, /* unlink */ + obdfs_symlink, /* symlink */ + obdfs_mkdir, /* mkdir */ + obdfs_rmdir, /* rmdir */ + obdfs_mknod, /* mknod */ + obdfs_rename, /* rename */ + NULL, /* readlink */ + NULL, /* follow_link */ + NULL, /* get_block */ + obdfs_readpage, /* readpage */ + obdfs_writepage, /* writepage */ + NULL, /* truncate */ + NULL, /* permission */ + NULL /* revalidate */ +}; int obdfs_check_dir_entry (const char * function, struct inode * dir, struct ext2_dir_entry_2 * de, @@ -89,7 +125,7 @@ if (dir && le32_to_cpu(de->inode) > le32_to_cpu(dir->i_sb->u.ext2_sb.s_es->s_ino } -int obdfs_readdir(struct file * filp, void * dirent, filldir_t filldir) +static int obdfs_readdir(struct file * filp, void * dirent, filldir_t filldir) { int error = 0; unsigned long offset; @@ -168,7 +204,8 @@ revalidate: * not the directory has been modified * during the copy operation. */ - /* XXX unsigned long version = inode->i_version; + /* XXX + unsigned long version = inode->i_version; */ error = filldir(dirent, de->name, de->name_len,