* Check superblock of proc file in addition to inode number
+ * Fix reace between request_send_noreply() and fuse_dev_release()
+
2004-11-10 Miklos Szeredi <miklos@szeredi.hu>
* Released 2.1-pre0
{
req->issync = 0;
+ spin_lock(&fuse_lock);
if (fc->file) {
- spin_lock(&fuse_lock);
list_add_tail(&req->list, &fc->pending);
wake_up(&fc->waitq);
spin_unlock(&fuse_lock);
- } else
+ } else {
+ spin_unlock(&fuse_lock);
fuse_put_request(fc, req);
+ }
}
void request_send_nonblock(struct fuse_conn *fc, struct fuse_req *req,
struct inode *ino;
ino = file->f_dentry->d_inode;
- if (!ino || !proc_fuse_dev || proc_mnt->mnt_sb != ino->i_sb ||
+ if (!ino || !proc_fuse_dev ||
+ strcmp(ino->i_sb->s_type->name, "proc") != 0 ||
proc_fuse_dev->low_ino != ino->i_ino) {
printk("FUSE: bad communication file descriptor\n");
return NULL;