diff options
Diffstat (limited to 'lib/fuse.c')
-rw-r--r-- | lib/fuse.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -256,10 +256,11 @@ static void unref_node(struct fuse *f, struct node *node) static fuse_ino_t next_id(struct fuse *f) { do { - f->ctr++; + f->ctr = (f->ctr + 1) & 0xffffffff; if (!f->ctr) f->generation ++; - } while (f->ctr == 0 || get_node_nocheck(f, f->ctr) != NULL); + } while (f->ctr == 0 || f->ctr == FUSE_UNKNOWN_INO || + get_node_nocheck(f, f->ctr) != NULL); return f->ctr; } |