Esempio n. 1
0
static void fuse_clear_inode(struct inode *inode)
{
	struct fuse_conn *fc = INO_FC(inode);
	struct fuse_in *in = NULL;
	struct fuse_forget_in *inarg = NULL;

	if(fc == NULL)
		return;

	in = kmalloc(sizeof(struct fuse_in), GFP_NOFS);
	if(!in)
		return;
	memset(in, 0, sizeof(struct fuse_in));

	inarg = kmalloc(sizeof(struct fuse_forget_in), GFP_NOFS);
	if(!inarg)
		goto out_free;

	memset(inarg, 0, sizeof(struct fuse_forget_in));
	inarg->version = inode->i_version;

	in->h.opcode = FUSE_FORGET;
	in->h.ino = inode->i_ino;
	in->numargs = 1;
	in->args[0].size = sizeof(struct fuse_forget_in);
	in->args[0].value = inarg;

	if(!request_send_noreply(fc, in))
		return;

  out_free:
	kfree(inarg);
	kfree(in);
}
Esempio n. 2
0
void fuse_send_forget(struct fuse_conn *fc, struct fuse_req *req,
		      u64 nodeid, u64 nlookup)
{
	struct fuse_forget_in *inarg = &req->misc.forget_in;
	inarg->nlookup = nlookup;
	req->in.h.opcode = FUSE_FORGET;
	req->in.h.nodeid = nodeid;
	req->in.numargs = 1;
	req->in.args[0].size = sizeof(struct fuse_forget_in);
	req->in.args[0].value = inarg;
	request_send_noreply(fc, req);
}