diff options
Diffstat (limited to 'fs/fuse')
-rw-r--r-- | fs/fuse/dev.c | 6 | ||||
-rw-r--r-- | fs/fuse/dir.c | 5 | ||||
-rw-r--r-- | fs/fuse/fuse_i.h | 12 |
3 files changed, 12 insertions, 11 deletions
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index d4c869c6d01b..a6f90a6c754a 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c | |||
@@ -151,9 +151,9 @@ void fuse_release_background(struct fuse_req *req) | |||
151 | /* | 151 | /* |
152 | * This function is called when a request is finished. Either a reply | 152 | * This function is called when a request is finished. Either a reply |
153 | * has arrived or it was interrupted (and not yet sent) or some error | 153 | * has arrived or it was interrupted (and not yet sent) or some error |
154 | * occured during communication with userspace, or the device file was | 154 | * occurred during communication with userspace, or the device file was |
155 | * closed. It decreases the referece count for the request. In case | 155 | * closed. It decreases the reference count for the request. In case |
156 | * of a background request the referece to the stored objects are | 156 | * of a background request the reference to the stored objects are |
157 | * released. The requester thread is woken up (if still waiting), and | 157 | * released. The requester thread is woken up (if still waiting), and |
158 | * finally the request is either freed or put on the unused_list | 158 | * finally the request is either freed or put on the unused_list |
159 | * | 159 | * |
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index 29f1e9f6e85c..70dba721acab 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c | |||
@@ -741,13 +741,14 @@ static struct dentry *fuse_lookup(struct inode *dir, struct dentry *entry, | |||
741 | if (inode && S_ISDIR(inode->i_mode)) { | 741 | if (inode && S_ISDIR(inode->i_mode)) { |
742 | /* Don't allow creating an alias to a directory */ | 742 | /* Don't allow creating an alias to a directory */ |
743 | struct dentry *alias = d_find_alias(inode); | 743 | struct dentry *alias = d_find_alias(inode); |
744 | if (alias && !(alias->d_flags & DCACHE_DISCONNECTED)) { | 744 | if (alias) { |
745 | dput(alias); | 745 | dput(alias); |
746 | iput(inode); | 746 | iput(inode); |
747 | return ERR_PTR(-EIO); | 747 | return ERR_PTR(-EIO); |
748 | } | 748 | } |
749 | } | 749 | } |
750 | return d_splice_alias(inode, entry); | 750 | d_add(entry, inode); |
751 | return NULL; | ||
751 | } | 752 | } |
752 | 753 | ||
753 | static int fuse_setxattr(struct dentry *entry, const char *name, | 754 | static int fuse_setxattr(struct dentry *entry, const char *name, |
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index 24d761518d86..5cb456f572c1 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h | |||
@@ -349,22 +349,22 @@ int fuse_fsync_common(struct file *file, struct dentry *de, int datasync, | |||
349 | int isdir); | 349 | int isdir); |
350 | 350 | ||
351 | /** | 351 | /** |
352 | * Initialise file operations on a regular file | 352 | * Initialize file operations on a regular file |
353 | */ | 353 | */ |
354 | void fuse_init_file_inode(struct inode *inode); | 354 | void fuse_init_file_inode(struct inode *inode); |
355 | 355 | ||
356 | /** | 356 | /** |
357 | * Initialise inode operations on regular files and special files | 357 | * Initialize inode operations on regular files and special files |
358 | */ | 358 | */ |
359 | void fuse_init_common(struct inode *inode); | 359 | void fuse_init_common(struct inode *inode); |
360 | 360 | ||
361 | /** | 361 | /** |
362 | * Initialise inode and file operations on a directory | 362 | * Initialize inode and file operations on a directory |
363 | */ | 363 | */ |
364 | void fuse_init_dir(struct inode *inode); | 364 | void fuse_init_dir(struct inode *inode); |
365 | 365 | ||
366 | /** | 366 | /** |
367 | * Initialise inode operations on a symlink | 367 | * Initialize inode operations on a symlink |
368 | */ | 368 | */ |
369 | void fuse_init_symlink(struct inode *inode); | 369 | void fuse_init_symlink(struct inode *inode); |
370 | 370 | ||
@@ -411,7 +411,7 @@ struct fuse_req *fuse_get_request(struct fuse_conn *fc); | |||
411 | 411 | ||
412 | /** | 412 | /** |
413 | * Decrement reference count of a request. If count goes to zero put | 413 | * Decrement reference count of a request. If count goes to zero put |
414 | * on unused list (preallocated) or free reqest (not preallocated). | 414 | * on unused list (preallocated) or free request (not preallocated). |
415 | */ | 415 | */ |
416 | void fuse_put_request(struct fuse_conn *fc, struct fuse_req *req); | 416 | void fuse_put_request(struct fuse_conn *fc, struct fuse_req *req); |
417 | 417 | ||
@@ -431,7 +431,7 @@ void request_send_noreply(struct fuse_conn *fc, struct fuse_req *req); | |||
431 | void request_send_background(struct fuse_conn *fc, struct fuse_req *req); | 431 | void request_send_background(struct fuse_conn *fc, struct fuse_req *req); |
432 | 432 | ||
433 | /** | 433 | /** |
434 | * Release inodes and file assiciated with background request | 434 | * Release inodes and file associated with background request |
435 | */ | 435 | */ |
436 | void fuse_release_background(struct fuse_req *req); | 436 | void fuse_release_background(struct fuse_req *req); |
437 | 437 | ||