aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/inode.c
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2004-06-22 18:46:02 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2004-06-22 18:46:02 +0000
commitd3dd2d5466a520f7ca866b478faecd1afd3de1f5 (patch)
tree4b26642d6057813ce5d3a18b37db1022207a91b6 /kernel/inode.c
parent2778f6cf5d27e40337f163f476fac8f0ffec1130 (diff)
downloadlibfuse-d3dd2d5466a520f7ca866b478faecd1afd3de1f5.tar.gz
request allocation improvements
Diffstat (limited to 'kernel/inode.c')
-rw-r--r--kernel/inode.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/kernel/inode.c b/kernel/inode.c
index 83ac407..afee16d 100644
--- a/kernel/inode.c
+++ b/kernel/inode.c
@@ -60,13 +60,15 @@ void fuse_send_forget(struct fuse_conn *fc, struct fuse_req *req, ino_t ino,
static void fuse_clear_inode(struct inode *inode)
{
struct fuse_conn *fc = INO_FC(inode);
- struct fuse_req *req;
+ struct fuse_req *req = inode->u.generic_ip;
- if (fc == NULL)
+ if (fc == NULL) {
+ if (req)
+ fuse_request_free(req);
return;
-
- req = fuse_get_request_nonint(fc);
- fuse_send_forget(fc, req, inode->i_ino, inode->i_version);
+ }
+ if (req != NULL)
+ fuse_send_forget(fc, req, inode->i_ino, inode->i_version);
}
static void fuse_put_super(struct super_block *sb)