Fix hang caused by returning with lock held
[yaffs2.git] / yaffs_vfs_multi.c
index acb0c4a4a82e726d11fdcd53fdd3d682c9689402..de3dd75988ef7de715fd80ec28ff6b96e501a903 100644 (file)
@@ -1,8 +1,7 @@
 /*
  * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
  *
- * Copyright (C) 2002-2011 Aleph One Ltd.
- *   for Toby Churchill Ltd and Brightstar Engineering
+ * Copyright (C) 2002-2018 Aleph One Ltd.
  *
  * Created by Charles Manning <charles@aleph1.co.uk>
  * Acknowledgements:
@@ -1817,8 +1816,10 @@ static int yaffs_iterate(struct file *f, struct dir_context *dc)
                goto out;
        }
 
-       if (!dir_emit_dots(f, dc))
+       if (!dir_emit_dots(f, dc)) {
+               yaffs_gross_unlock(dev);
                return 0;
+       }
 
        curoffs = 1;