diff options
author | Madan Valluri <mvalluri@cumulus-systems.com> | 2013-02-04 18:30:14 +0100 |
---|---|---|
committer | Miklos Szeredi <mszeredi@suse.cz> | 2013-02-04 18:30:14 +0100 |
commit | d7bf78d9131bbe44800d0e961eaf3881925d1219 (patch) | |
tree | 69ae615be4b5fcf2280a9e558aaeeff78183c463 /lib/fuse.c | |
parent | 3a2bd4da6b0b713276528d0c818f9e7be515e8ec (diff) | |
download | android_external_fuse-d7bf78d9131bbe44800d0e961eaf3881925d1219.tar.gz android_external_fuse-d7bf78d9131bbe44800d0e961eaf3881925d1219.tar.bz2 android_external_fuse-d7bf78d9131bbe44800d0e961eaf3881925d1219.zip |
libfuse: fix the 'remember' option
The lru list was not initialized for the "/" path. This resulted in
remove_node_lru() crashing on LOOKUP-DOTDOT.
Patch by Madan Valluri.
--
ChangeLog | 4 ++++
lib/fuse.c | 4 ++++
2 files changed, 8 insertions(+)
Diffstat (limited to 'lib/fuse.c')
-rw-r--r-- | lib/fuse.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -4698,6 +4698,10 @@ struct fuse *fuse_new_common(struct fuse_chan *ch, struct fuse_args *args, fprintf(stderr, "fuse: memory allocation failed\n"); goto out_free_id_table; } + if (lru_enabled(f)) { + struct node_lru *lnode = node_lru(root); + init_list_head(&lnode->lru); + } strcpy(root->inline_name, "/"); root->name = root->inline_name; |