]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
fuse: use atomic64_t for khctr
authorMiklos Szeredi <mszeredi@redhat.com>
Thu, 24 Jan 2019 09:40:17 +0000 (10:40 +0100)
committerMiklos Szeredi <mszeredi@redhat.com>
Wed, 13 Feb 2019 12:15:14 +0000 (13:15 +0100)
...to get rid of one more fc->lock use.

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/file.c
fs/fuse/fuse_i.h
fs/fuse/inode.c

index 26c2523120bc893c873f13be83ceeb0033702eb5..b2a4fab08cb4cea3bdad3caeb3e8181be2578532 100644 (file)
@@ -64,9 +64,7 @@ struct fuse_file *fuse_file_alloc(struct fuse_conn *fc)
        RB_CLEAR_NODE(&ff->polled_node);
        init_waitqueue_head(&ff->poll_wait);
 
-       spin_lock(&fc->lock);
-       ff->kh = ++fc->khctr;
-       spin_unlock(&fc->lock);
+       ff->kh = atomic64_inc_return(&fc->khctr);
 
        return ff;
 }
index b1ac587671ac7d11deda9fe062e5ad4256921c18..033e30af519f75449219020bfcbbbaa816cc31bd 100644 (file)
@@ -544,7 +544,7 @@ struct fuse_conn {
        struct fuse_iqueue iq;
 
        /** The next unique kernel file handle */
-       u64 khctr;
+       atomic64_t khctr;
 
        /** rbtree of fuse_files waiting for poll events indexed by ph */
        struct rb_root polled_files;
index 11aac2f4eda1a05602974c44ec3aa6ae08740d08..2bbb7c59d6da3d69c0cce666cf36c288ae62b6e0 100644 (file)
@@ -622,7 +622,7 @@ void fuse_conn_init(struct fuse_conn *fc, struct user_namespace *user_ns)
        atomic_set(&fc->num_waiting, 0);
        fc->max_background = FUSE_DEFAULT_MAX_BACKGROUND;
        fc->congestion_threshold = FUSE_DEFAULT_CONGESTION_THRESHOLD;
-       fc->khctr = 0;
+       atomic64_set(&fc->khctr, 0);
        fc->polled_files = RB_ROOT;
        fc->blocked = 0;
        fc->initialized = 0;