perf tools: Pass build_id object to dso__build_id_equal()
[linux-2.6-microblaze.git] / fs / 9p / vfs_inode.c
index c9255d3..ae0c38a 100644 (file)
@@ -223,8 +223,7 @@ v9fs_blank_wstat(struct p9_wstat *wstat)
 struct inode *v9fs_alloc_inode(struct super_block *sb)
 {
        struct v9fs_inode *v9inode;
-       v9inode = (struct v9fs_inode *)kmem_cache_alloc(v9fs_inode_cache,
-                                                       GFP_KERNEL);
+       v9inode = kmem_cache_alloc(v9fs_inode_cache, GFP_KERNEL);
        if (!v9inode)
                return NULL;
 #ifdef CONFIG_9P_FSCACHE
@@ -368,59 +367,6 @@ struct inode *v9fs_get_inode(struct super_block *sb, umode_t mode, dev_t rdev)
        return inode;
 }
 
-/*
-static struct v9fs_fid*
-v9fs_clone_walk(struct v9fs_session_info *v9ses, u32 fid, struct dentry *dentry)
-{
-       int err;
-       int nfid;
-       struct v9fs_fid *ret;
-       struct v9fs_fcall *fcall;
-
-       nfid = v9fs_get_idpool(&v9ses->fidpool);
-       if (nfid < 0) {
-               eprintk(KERN_WARNING, "no free fids available\n");
-               return ERR_PTR(-ENOSPC);
-       }
-
-       err = v9fs_t_walk(v9ses, fid, nfid, (char *) dentry->d_name.name,
-               &fcall);
-
-       if (err < 0) {
-               if (fcall && fcall->id == RWALK)
-                       goto clunk_fid;
-
-               PRINT_FCALL_ERROR("walk error", fcall);
-               v9fs_put_idpool(nfid, &v9ses->fidpool);
-               goto error;
-       }
-
-       kfree(fcall);
-       fcall = NULL;
-       ret = v9fs_fid_create(v9ses, nfid);
-       if (!ret) {
-               err = -ENOMEM;
-               goto clunk_fid;
-       }
-
-       err = v9fs_fid_insert(ret, dentry);
-       if (err < 0) {
-               v9fs_fid_destroy(ret);
-               goto clunk_fid;
-       }
-
-       return ret;
-
-clunk_fid:
-       v9fs_t_clunk(v9ses, nfid);
-
-error:
-       kfree(fcall);
-       return ERR_PTR(err);
-}
-*/
-
-
 /**
  * v9fs_clear_inode - release an inode
  * @inode: inode to release
@@ -1090,7 +1036,7 @@ static int v9fs_vfs_setattr(struct dentry *dentry, struct iattr *iattr)
 {
        int retval;
        struct v9fs_session_info *v9ses;
-       struct p9_fid *fid;
+       struct p9_fid *fid = NULL;
        struct p9_wstat wstat;
 
        p9_debug(P9_DEBUG_VFS, "\n");
@@ -1100,7 +1046,12 @@ static int v9fs_vfs_setattr(struct dentry *dentry, struct iattr *iattr)
 
        retval = -EPERM;
        v9ses = v9fs_dentry2v9ses(dentry);
-       fid = v9fs_fid_lookup(dentry);
+       if (iattr->ia_valid & ATTR_FILE) {
+               fid = iattr->ia_file->private_data;
+               WARN_ON(!fid);
+       }
+       if (!fid)
+               fid = v9fs_fid_lookup(dentry);
        if(IS_ERR(fid))
                return PTR_ERR(fid);