Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 18662
b: refs/heads/master
c: 095da6c
h: refs/heads/master
v: v3
  • Loading branch information
Miklos Szeredi authored and Linus Torvalds committed Jan 17, 2006
1 parent b7cd44b commit 7e14784
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bacac382fbf53f717ca7f83558e45cce44e67df9
refs/heads/master: 095da6cbb6a1c54c19b11190218eb0fbac666b6d
24 changes: 21 additions & 3 deletions trunk/fs/fuse/fuse_i.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,11 @@ struct fuse_out {
/** Header returned from userspace */
struct fuse_out_header h;

/*
* The following bitfields are not changed during the request
* processing
*/

/** Last argument is variable length (can be shorter than
arg->size) */
unsigned argvar:1;
Expand Down Expand Up @@ -136,6 +141,12 @@ struct fuse_req {
/** refcount */
atomic_t count;

/*
* The following bitfields are either set once before the
* request is queued or setting/clearing them is protected by
* fuse_lock
*/

/** True if the request has reply */
unsigned isreply:1;

Expand Down Expand Up @@ -250,15 +261,22 @@ struct fuse_conn {
u64 reqctr;

/** Mount is active */
unsigned mounted : 1;
unsigned mounted;

/** Connection established, cleared on umount, connection
abort and device release */
unsigned connected : 1;
unsigned connected;

/** Connection failed (version mismatch) */
/** Connection failed (version mismatch). Cannot race with
setting other bitfields since it is only set once in INIT
reply, before any other request, and never cleared */
unsigned conn_error : 1;

/*
* The following bitfields are only for optimization purposes
* and hence races in setting them will not cause malfunction
*/

/** Is fsync not implemented by fs? */
unsigned no_fsync : 1;

Expand Down
2 changes: 2 additions & 0 deletions trunk/fs/fuse/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,7 @@ static struct fuse_conn *new_conn(void)
init_rwsem(&fc->sbput_sem);
kobj_set_kset_s(fc, connections_subsys);
kobject_init(&fc->kobj);
atomic_set(&fc->num_waiting, 0);
for (i = 0; i < FUSE_MAX_OUTSTANDING; i++) {
struct fuse_req *req = fuse_request_alloc();
if (!req) {
Expand Down Expand Up @@ -492,6 +493,7 @@ static void fuse_send_init(struct fuse_conn *fc)
to be exactly one request available */
struct fuse_req *req = fuse_get_request(fc);
struct fuse_init_in *arg = &req->misc.init_in;

arg->major = FUSE_KERNEL_VERSION;
arg->minor = FUSE_KERNEL_MINOR_VERSION;
req->in.h.opcode = FUSE_INIT;
Expand Down

0 comments on commit 7e14784

Please sign in to comment.