From a7acf28703e4b8a247b869f238fbeddf5a21ea55 Mon Sep 17 00:00:00 2001 From: zab Date: Fri, 27 Feb 2004 21:32:21 +0000 Subject: [PATCH] - update b_cray_portals_merge from head (HEAD_CRAY_PORTALS_MERGE_UPDATE_CHILD_20040227_1243) in preparation for 2776 work (the bug where our future-forefathers sing and dance) --- lustre/smfs/file.c | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/lustre/smfs/file.c b/lustre/smfs/file.c index 6235235..eaf1901 100644 --- a/lustre/smfs/file.c +++ b/lustre/smfs/file.c @@ -11,6 +11,7 @@ #include #include #include +#include #include "smfs_internal.h" /* instantiate a file handle to the cache file */ @@ -86,11 +87,13 @@ static ssize_t smfs_write (struct file *filp, const char *buf, smfs_prepare_cachefile(inode, filp, cache_inode, &open_file, &open_dentry); + pre_smfs_inode(inode, cache_inode); + if (cache_inode->i_fop->write) rc = cache_inode->i_fop->write(&open_file, buf, count, cache_ppos); *ppos = *cache_ppos; - duplicate_inode(cache_inode, inode); + post_smfs_inode(inode, cache_inode); smfs_update_file(filp, &open_file); RETURN(rc); @@ -117,7 +120,7 @@ int smfs_ioctl(struct inode * inode, struct file * filp, if (cache_inode->i_fop->ioctl) rc = cache_inode->i_fop->ioctl(cache_inode, &open_file, cmd, arg); - duplicate_inode(cache_inode, inode); + post_smfs_inode(inode, cache_inode); smfs_update_file(filp, &open_file); RETURN(rc); } @@ -152,11 +155,12 @@ static ssize_t smfs_read (struct file *filp, char *buf, &open_file, &open_dentry); + pre_smfs_inode(inode, cache_inode); if (cache_inode->i_fop->read) rc = cache_inode->i_fop->read(&open_file, buf, count, cache_ppos); *ppos = *cache_ppos; - duplicate_inode(cache_inode, inode); + post_smfs_inode(inode, cache_inode); smfs_update_file(filp, &open_file); RETURN(rc); } @@ -180,10 +184,11 @@ static loff_t smfs_llseek(struct file *file, smfs_prepare_cachefile(dentry->d_inode, file, cache_inode, &open_file, &open_dentry); + pre_smfs_inode(dentry->d_inode, cache_inode); if (cache_inode->i_fop->llseek) rc = cache_inode->i_fop->llseek(&open_file, offset, origin); - duplicate_inode(cache_inode, dentry->d_inode); + post_smfs_inode(dentry->d_inode, cache_inode); smfs_update_file(file, &open_file); RETURN(rc); @@ -207,10 +212,11 @@ static int smfs_mmap(struct file * file, struct vm_area_struct * vma) if (cache_inode->i_mapping == &cache_inode->i_data) inode->i_mapping = cache_inode->i_mapping; + pre_smfs_inode(inode, cache_inode); if (cache_inode->i_fop->mmap) rc = cache_inode->i_fop->mmap(&open_file, vma); - duplicate_inode(cache_inode, inode); + post_smfs_inode(inode, cache_inode); smfs_update_file(file, &open_file); RETURN(rc); @@ -230,10 +236,11 @@ static int smfs_open(struct inode * inode, struct file * filp) smfs_prepare_cachefile(inode, filp, cache_inode, &open_file, &open_dentry); + pre_smfs_inode(inode, cache_inode); if (cache_inode->i_fop->open) rc = cache_inode->i_fop->open(cache_inode, &open_file); - duplicate_inode(cache_inode, inode); + post_smfs_inode(inode, cache_inode); smfs_update_file(filp, &open_file); RETURN(rc); @@ -253,10 +260,11 @@ static int smfs_release(struct inode * inode, struct file * filp) smfs_prepare_cachefile(inode, filp, cache_inode, &open_file, &open_dentry); + pre_smfs_inode(inode, cache_inode); if (cache_inode->i_fop->release) rc = cache_inode->i_fop->release(cache_inode, &open_file); - duplicate_inode(cache_inode, inode); + post_smfs_inode(inode, cache_inode); smfs_update_file(filp, &open_file); RETURN(rc); @@ -278,10 +286,11 @@ int smfs_fsync(struct file * file, smfs_prepare_cachefile(inode, file, cache_inode, &open_file, &open_dentry); + pre_smfs_inode(inode, cache_inode); if (cache_inode->i_fop->fsync) rc = cache_inode->i_fop->fsync(&open_file, &open_dentry, datasync); - duplicate_inode(cache_inode, inode); + post_smfs_inode(inode, cache_inode); smfs_update_file(file, &open_file); RETURN(rc); @@ -325,7 +334,7 @@ static void smfs_truncate(struct inode * inode) if (cache_inode->i_op->truncate) cache_inode->i_op->truncate(cache_inode); - duplicate_inode(inode, cache_inode); + post_smfs_inode(inode, cache_inode); return; } @@ -343,10 +352,11 @@ int smfs_setattr(struct dentry *dentry, struct iattr *attr) RETURN(-ENOENT); smfs_prepare_cache_dentry(&open_dentry, cache_inode); + pre_smfs_inode(dentry->d_inode, cache_inode); if (cache_inode->i_op->setattr) rc = cache_inode->i_op->setattr(&open_dentry, attr); - duplicate_inode(cache_inode, dentry->d_inode); + post_smfs_inode(dentry->d_inode, cache_inode); RETURN(rc); } @@ -363,12 +373,13 @@ int smfs_setxattr(struct dentry *dentry, const char *name, if (!cache_inode) RETURN(-ENOENT); + pre_smfs_inode(dentry->d_inode, cache_inode); smfs_prepare_cache_dentry(&open_dentry, cache_inode); if (cache_inode->i_op->setattr) rc = cache_inode->i_op->setxattr(&open_dentry, name, value, size, flags); - duplicate_inode(cache_inode, dentry->d_inode); + post_smfs_inode(dentry->d_inode, cache_inode); RETURN(rc); } @@ -385,11 +396,12 @@ int smfs_getxattr(struct dentry *dentry, const char *name, RETURN(-ENOENT); smfs_prepare_cache_dentry(&open_dentry, cache_inode); + pre_smfs_inode(dentry->d_inode, cache_inode); if (cache_inode->i_op->setattr) rc = cache_inode->i_op->getxattr(&open_dentry, name, buffer, size); - duplicate_inode(cache_inode, dentry->d_inode); + post_smfs_inode(dentry->d_inode, cache_inode); RETURN(rc); } @@ -405,11 +417,12 @@ ssize_t smfs_listxattr(struct dentry *dentry, char *buffer, size_t size) RETURN(-ENOENT); smfs_prepare_cache_dentry(&open_dentry, cache_inode); + pre_smfs_inode(dentry->d_inode, cache_inode); if (cache_inode->i_op->listxattr) rc = cache_inode->i_op->listxattr(&open_dentry, buffer, size); - duplicate_inode(cache_inode, dentry->d_inode); + post_smfs_inode(dentry->d_inode, cache_inode); RETURN(rc); } @@ -425,11 +438,12 @@ int smfs_removexattr(struct dentry *dentry, const char *name) RETURN(-ENOENT); smfs_prepare_cache_dentry(&open_dentry, cache_inode); + pre_smfs_inode(dentry->d_inode, cache_inode); if (cache_inode->i_op->removexattr) rc = cache_inode->i_op->removexattr(&open_dentry, name); - duplicate_inode(cache_inode, dentry->d_inode); + post_smfs_inode(dentry->d_inode, cache_inode); RETURN(rc); } -- 1.8.3.1