mirror of
https://github.com/apache/nuttx.git
synced 2026-05-19 20:06:24 +08:00
Fix a union file system bug
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
NuttX TODO List (Last updated June 22, 2015)
|
||||
NuttX TODO List (Last updated June 24, 2015)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This file summarizes known NuttX bugs, limitations, inconsistencies with
|
||||
@@ -19,7 +19,7 @@ nuttx/
|
||||
(12) Network (net/, drivers/net)
|
||||
(5) USB (drivers/usbdev, drivers/usbhost)
|
||||
(12) Libraries (libc/, libm/)
|
||||
(12) File system/Generic drivers (fs/, drivers/)
|
||||
(11) File system/Generic drivers (fs/, drivers/)
|
||||
(8) Graphics subsystem (graphics/)
|
||||
(1) Pascal add-on (pcode/)
|
||||
(2) Build system / Toolchains
|
||||
@@ -1439,24 +1439,6 @@ o File system / Generic drivers (fs/, drivers/)
|
||||
ignored by readder() logic. This the file does not
|
||||
appear in the 'ls'.
|
||||
|
||||
Title: UNIONFS WITH OFFSETS
|
||||
Description: The Union File System supports offset strings to allow
|
||||
directories to appear at an offset below the union mount
|
||||
point. These offsets work in many cases (open, close, read,
|
||||
write, etc.), but there are some problems:
|
||||
|
||||
1. The current test case at apps/examples/unionfs uses an
|
||||
offset string for one file system, but the offset string
|
||||
is matched by a a directory in the other file system.
|
||||
This causes many problems with the offset file system to
|
||||
be obscured.
|
||||
2. If both contained file systems are offset, then stat(),
|
||||
opendir(), readdir() etc. fail.
|
||||
3. The offsets do not work for directory operations on their
|
||||
the top level directory.
|
||||
Status: Open
|
||||
Priority: High-ish
|
||||
|
||||
o Graphics subsystem (graphics/)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
||||
+328
-61
File diff suppressed because it is too large
Load Diff
@@ -157,6 +157,8 @@ struct fs_dirent_s; /* Forward reference */
|
||||
struct fs_unionfsdir_s
|
||||
{
|
||||
uint8_t fu_ndx; /* Index of file system being enumerated */
|
||||
bool fu_eod; /* True: At end of directory */
|
||||
bool fu_prefix[2]; /* True: Fake directory in prefix */
|
||||
FAR char *fu_relpath; /* Path being enumerated */
|
||||
FAR struct fs_dirent_s *fu_lower[2]; /* dirent struct used by contained file system */
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user