mirror of
https://github.com/apache/nuttx.git
synced 2026-05-28 20:08:15 +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
|
This file summarizes known NuttX bugs, limitations, inconsistencies with
|
||||||
@@ -19,7 +19,7 @@ nuttx/
|
|||||||
(12) Network (net/, drivers/net)
|
(12) Network (net/, drivers/net)
|
||||||
(5) USB (drivers/usbdev, drivers/usbhost)
|
(5) USB (drivers/usbdev, drivers/usbhost)
|
||||||
(12) Libraries (libc/, libm/)
|
(12) Libraries (libc/, libm/)
|
||||||
(12) File system/Generic drivers (fs/, drivers/)
|
(11) File system/Generic drivers (fs/, drivers/)
|
||||||
(8) Graphics subsystem (graphics/)
|
(8) Graphics subsystem (graphics/)
|
||||||
(1) Pascal add-on (pcode/)
|
(1) Pascal add-on (pcode/)
|
||||||
(2) Build system / Toolchains
|
(2) Build system / Toolchains
|
||||||
@@ -1439,24 +1439,6 @@ o File system / Generic drivers (fs/, drivers/)
|
|||||||
ignored by readder() logic. This the file does not
|
ignored by readder() logic. This the file does not
|
||||||
appear in the 'ls'.
|
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/)
|
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
|
struct fs_unionfsdir_s
|
||||||
{
|
{
|
||||||
uint8_t fu_ndx; /* Index of file system being enumerated */
|
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 char *fu_relpath; /* Path being enumerated */
|
||||||
FAR struct fs_dirent_s *fu_lower[2]; /* dirent struct used by contained file system */
|
FAR struct fs_dirent_s *fu_lower[2]; /* dirent struct used by contained file system */
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user