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 | |
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(+)
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | lib/fuse.c | 4 |
2 files changed, 8 insertions, 0 deletions
@@ -2,6 +2,10 @@ * libfuse: fix crash in unlock_path(). Patch by Ratna Manoj + * 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 + 2012-10-01 Miklos Szeredi <miklos@szeredi.hu> * Released 2.9.2 @@ -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; |