Commit graph

1432 commits

Author SHA1 Message Date
ligd
1b2850b840 fs/procfs: fix heap overflow when snprintf meet long string
Change-Id: I90f2d9fab55b6e69f159855af3d6dbcb81142eb8
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-04-15 22:07:22 +08:00
chao.an
f3c1a530fe fs/inode: correct the return value
Change-Id: I597c1eb5899eb8f933c50fdfa5abeeb0acf5f37f
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-04-06 18:18:49 +08:00
Xiang Xiao
64cc68b588 vfs/lfs: Simplify the lookahead_size equation
the final result is same(keep 8 bytes alignment)

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I664879960c898a7f1518236b24a2b3ee8a9998d0
2021-04-02 21:45:09 +08:00
Xiang Xiao
a616515585 fs/lfs: Update version to 2.4.0
And redirect assert and log to NuttX's version
which is possible after:
commit c0cc0a417e727764ccce6f1284e3570898d750e6
Author: Christopher Haster <chaster@utexas.edu>
Date:   Mon Jan 18 14:01:53 2021 -0600

    Enabled overriding of LFS_ASSERT/TRACE/DEBUG/etc

    This is useful for testing the new erroring assert behavior in CI.
    Asserts do not error by default, so this macro needs to be overriden.

    It is possible to test this behavior using the existing option of
    overriding lfs_util.h with a custom file, by using a small sed
    one-line script. But this is much simpler.

    This does raise the question if more of the configuration options in
    lfs_util.h should be opened up for function-like macro overrides.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ie70814e1a2777e19a7310358d3a94ff965287d7b
2021-04-02 21:45:09 +08:00
Jiuzhu Dong
293c7e6b6f sched/dupfile: ignore dup failed when task_create
MIRTOS-517

Change-Id: I2387ab447f0d8ed9429960922a72de35b2730acb
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-03-22 20:56:12 +08:00
Xiang Xiao
152db4f0bf fs/littlefs: Suppport the duplication function
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I64191bdeab3723b22476d27c44852493eed1b07e
2021-03-22 17:43:21 +08:00
Jiuzhu Dong
e364beaf87 fs/mmap: return EBADF when file descriptors is invalid
MIRTOS-504

Change-Id: I06276be2bbc67e4d6dd04bfd6b5a205bdf639d99
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-03-18 22:26:46 +08:00
Jiuzhu Dong
7a6a1c1f42 fs: allocate file/socket dynamically
MIRTOS-273

Change-Id: I8aea63eaf0275f47f21fc8d5482b51ffecd5c906
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-03-17 21:15:26 +08:00
chao.an
6e1e06de18 fs/epoll: correct the return value of epoll_ctl(2)
Change-Id: I6a5233ec641889540c951d6ff50fef952e47212f
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-03-12 16:34:47 +08:00
丁欣童
e5eaa35553 vfs/epoll: Fix one bug of EPOLL_CTL_DEL.
N/A

Signed-off-by: 丁欣童 <dingxintong@xiaomi.com>
Change-Id: I91ec9fbf4b3884cb29bf30c4ff69a6c5df7f30ca
2021-03-12 11:40:05 +08:00
丁欣童
099385fff1 vfs: Fix epoll cannot work under 64-bit operating system
by switching to the real file handle

Change-Id: I79ac337d1f2646e38eb10f67a67505dc2f8e8298
Signed-off-by: 丁欣童 <dingxintong@xiaomi.com>
2021-03-11 19:32:05 +08:00
ligd
f6e505c252 fs/procfs: add memory nfree to procfs
Change-Id: I63af304aec627498589a6899411484c56d298d54
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-03-10 20:45:41 +08:00
Jiuzhu Dong
d96aa75a20 fs/aio: unify socket into fs operate
N/A

Change-Id: I3aa88a47d88feaa7fd156caea9e0425b20554eee
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-03-09 12:03:49 +08:00
dongjiuzhu1
bb65de6cae net: unify socket info file descriptor
MIRTOS-255

Change-Id: Iee680c8ac07fe87fb6e7900b4f792e0f1ff5036d
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-03-03 22:23:44 +08:00
chao.an
800421e231 net/tcp: cache the drop packet to avoid retransmit
Change-Id: Ia27ed17a7708df8481ac96d9a3a870b6ccef4d24
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-03-02 10:12:56 +08:00
chao.an
9c946e2af6 make/archive: replace the dependency to preprequisite list
Change-Id: Id63f3cd32906461a54cb016ef8078d4d922845e2
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-03-01 21:10:15 +08:00
ligd
df76063a35 Revert "net: unify socket info file descriptor"
This reverts commit 27b332283e.
2021-02-26 10:21:02 +08:00
Jiuzhu Dong
27b332283e net: unify socket info file descriptor
N/A

Change-Id: I9bcd21564e6c97d3edbb38aed1748c114160ea36
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-02-25 16:53:58 +08:00
Xiang Xiao
20a74de9a8 fs/lfs: lfs_file_sync() when littlefs_open
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Signed-off-by: ligd <liguiding1@xiaomi.com>
Change-Id: I8935f7aee414580174141f4b114b5faf03ffafd5
2021-02-24 18:35:53 +08:00
Xiang Xiao
ff25503236 fs/lfs: Remove semret temporary variable
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I2df74c7d42fac25c4b010e6b10c2af36f555c480
2021-02-24 18:31:11 +08:00
Xiang Xiao
f2f39c7e44 fs/procfs: Avoid the duplicated 0x prefix in pthread cmdline
like this:
... <pthread> 0x0x341de68c
 by removing "0x" from format string

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-02-22 16:05:26 +08:00
Peter Bee
1cd87d6f97 fs/mmap: add fd validation to correct errno
MIRTOS-111

Errors EBADF correctly. This is only a quick fix, and a lot needs
to be done with mmap().

Change-Id: Ica88360972447fbdd7c6af3bf76d8eeba4747db2
Signed-off-by: Peter Bee <bijunda1@xiaomi.com>
2021-02-22 15:40:20 +08:00
liuhaitao
9532a100ff fs/romfs: fix open zero-byte file fail issue
N/A

Error log as below:
romfs_open: ERROR: Failed to locate start of file data: -5

Change-Id: I0594a84b727077606450dea3ea348cfc2390458b
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2021-01-27 20:56:08 +08:00
ligd
387323b9b1 fs/tmpfs: fix compile error
make[2]: Entering directory '/home/ligd/platform/mirtos2/apps'
tmpfs/fs_tmpfs.c: In function 'tmpfs_rewinddir':
tmpfs/fs_tmpfs.c:2084:27: error: 'tdo' undeclared (first use in this function)
 2084 |   dir->u.tmpfs.tf_index = tdo->tdo_nentries;
      |                           ^~~
tmpfs/fs_tmpfs.c:2084:27: note: each undeclared identifier is reported only once for each function it appears in
Makefile:94: recipe for target 'fs_tmpfs.o' failed
make[1]: *** [fs_tmpfs.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: 'libwireless.a' is up to date.

Change-Id: I3846efa802fc6104bf908b8927138b9dd18f1227
2021-01-20 22:37:19 +08:00
Xiang Xiao
abebd91725 fs/tmpfs: Iterate the entry reversely in readdir
MIRTOS-342

to avoid readdir return the wrong entry in the following code:
void rmdir_recursive(FAR const char *path)
{
  FAR DIR *dir = opendir(path);

  while (1)
    {
      char fullpath[MAX_PATH];
      FAR dirent *ent = readdir(dir);

      if (ent == NULL)
        {
          break;
        }

      sprintf(fullpath, "%s/%s", path, ent->d_name);
      if (DIRENT_ISDIRECTORY(ent->d_type))
        {
          rmdir_recursive(fullpath);
        }
      else
        {
          unlink(fullpath);
        }
    }
}

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ide60fe8db6aada88ad3d8e45367f11599a6f33b1
2021-01-20 21:57:31 +08:00
Jiuzhu Dong
2c30b91ca6 fs/readdir: Must reserve a byte for the NUL terminator
MIRTOS-270

Change-Id: I1df0c278d289b90cc54512c0ee256a95549785ca
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2021-01-18 16:04:34 +08:00
Xiang Xiao
32f3ddec8b fs: Remove fs_dupfd and fs_dupfd2 internal functions
let's call either nx_dup/nx_dup2 or file_dup/file_dup2
instead just like other fs api: xxx->nx_xxx->file_xxx

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I1aacfb9e25dc7b3fcb0345ff7b269b1953a01e5b
2021-01-13 17:40:52 +08:00
Xiang Xiao
4852804b08 fs: file_dup2 shouldn't hold the file list lock
the argument passed to file_dup2 doesn't always come from task file list
so it doesn't make sense to hold the file list lock and then it is better
to do the protection in the new function files_dupfd2

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ibf02cea9b0b275e7472f9c04fd66b9242285b957
2021-01-13 17:40:52 +08:00
Xiang Xiao
18badb068e fs: Make nx_vxxx and file_vxxx as internal functions
these functions are the implementation detail and then
don't need expose to external

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ief832391d5b42d1f1645907eb465631650490234
2021-01-13 14:02:24 +08:00
liuhaitao
8d8d823953 fs: correct typo error to fix build break
N/A

Change-Id: I5da870c0469c11d6f2dc68f87d65b7598f0827a7
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2021-01-12 11:47:52 +08:00
Xiang Xiao
eba7216926 fs: Remove file_detach since it is unefficient to call open and file_detach
the kernel user should call file_open directly instead

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I5bf7f661006f5d43739bc8618abfb4b983fde78d
2021-01-12 11:03:36 +08:00
Xiang Xiao
ac99898bc7 fs: Reimplement file_open to not depend on nx_open
on the other hand, open/nx_open call file_open instead

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I66990a77cdeb6ff18f7bf48a65bbc7b701dad552
2021-01-12 11:03:20 +08:00
ligd
a5d6f1fc68 mqueue: add poll support
Change-Id: I7e908f6a6c00158c0946587dd79ae3dc5d279d37
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-01-12 10:34:43 +08:00
ligd
5b8ca6569f fs/mount: fix mount cmd break out when meet stat error
Change-Id: I9307fe67837a6519fffa1844fcfd794f735d2fdd
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-01-11 14:05:24 +08:00
ligd
214ef6c8e7 fs/inode/fs_files.c: fix DEBUGASSERT in romfs
up_assert: Assertion failed at file:romfs/fs_romfs.c line: 643

newp->f_priv should be NULL.

Change-Id: I5f72b1329a8938ce39cf1ac5fbee561ca106f4f6
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-01-08 20:54:16 +08:00
ligd
15cb64d3c1 fs/mqueue: fix compile error
Change-Id: I2f36f576d76c9b65e88f51b21c66b3f9b77b20d1
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-01-08 17:20:00 +08:00
ligd
87694f68a7 mqueue: add file_mq_xx for kernel use
Change-Id: Ida12f5938388cca2f233a4cde90277a218033645
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-01-08 14:31:37 +08:00
ligd
dcf8dae046 mqueue: simplify the mqueue reailize
1. remove descript management in mqueue, save code size
2. use i_ops instead of i_mqueue to remove the dup logic

Change-Id: Ie88960e50ddcae9c87977c9ad65a45297c663291
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-01-08 14:31:37 +08:00
Xiang Xiao
0af4d1e617 fs: Remove the special hack for pty in nx_vopen
let's replace the content of file in place instead

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I538910d55815c7aec656c05dba4eab2fa1d6d964
2021-01-08 11:17:57 +08:00
Xiang Xiao
3eb62b010b fs: Fix the race condition in file_dup
NULL inode passed to files_allocate doesn't mark file struct in the
allocated state, so other threads which invovle in file allocation
(e.g. open or dup) may allocate the same file struct again.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I53ff876eae3c7a1e311e7f671686b73a4b4ef891
2021-01-08 11:15:49 +08:00
Xiang Xiao
0112909453 fs: file_dup2 shouldn't destroy filep2 before the duplication of filep1 succeed
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I10956f5e32cc0add414076465c06a24a858e52bc
2021-01-08 11:14:51 +08:00
Xiang Xiao
22b67c8cd4 fs: Move file_close from fs/inode/fs_fileclose.c to fs/vfs/fs_close.c
just like other vfs public functions

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Id833da690f88013095fbbe1ea425227f808a5608
2021-01-04 10:50:01 +08:00
Xiang Xiao
0523f75202 fs: Remove _files_close and reuse file_close
to save the code space

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I08455010ba121a61b0e29334b580aa83e69a9418
2021-01-04 10:50:01 +08:00
Xiang Xiao
3a0a438d29 fs: Let files_allocate return -EMFILE instead ERROR
since the internal function normally return the error code directly

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ifccbcfb07d2f8f7d5fef1b2a867538f51b73655c
2021-01-04 10:50:00 +08:00
Xiang Xiao
79bd6b4c3f fs: Ensure fs_dupfd2 always return fd2 in the sucessful path
it's wrong to return file_dup2 directly since file_dup2 never return file handle

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I943537849c75d83b3d646a6a22f035187d9fd521
2021-01-04 10:50:00 +08:00
Xiang Xiao
351bbad39a fs: Remove inode null check from file_dup and fs_dupfd2
since the same check already done in file_dup2

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I7ba1309c55be1ac564f798df02fc6725c4a0d469
2021-01-04 10:50:00 +08:00
Brennan Ashton
ca0fb5694f vfs: Fix unsed label warning
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
2021-01-02 21:14:21 +08:00
ligd
0a7d86f587 fs: remove INODE_IS_SPECIAL() use others instead
Change-Id: I949f1ad012836e6cb233d5362fe2542732b5ecf4
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-01-02 21:14:21 +08:00
ligd
f58ef1476c fs/vfs: add nx_unlink support
Change-Id: If9009cb7301bb4e49bdce3aea2d56c243256f5a2
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-01-02 21:14:21 +08:00
chao.an
6991e6b89c fs/epoll: add asynchronous epoll control support
Change-Id: I2b8dbe51bebad9af08feb325430c838308f1912b
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-12-24 15:28:58 +08:00