dongjiuzhu1
5b889b9270
fs/dup: remove template filep to optimize dup operation
...
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-09-30 16:53:51 +08:00
chenrun1
96206cbf9d
fs/xxfs:Replace kmm with fs heap
...
Summary:
1.Add configuration to allocate memory from the specified section
2.Replace all memory operations (kmm_) in the vfs with
fs_heap_. When FS_HEAPSIZE > 0, memory is requested for the file system by specifying a configured heap location. By default (i.e. FS_HEAPSIZE=0) fs_heap_ is equivalent to kmm_
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-09-30 16:30:56 +08:00
dongjiuzhu1
29e7b00c4e
fs/epoll: add error log when epoll wait return failed
...
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-09-28 10:44:59 +08:00
dongjiuzhu1
580bdda624
fs/poll: ouput error log about poll failed
...
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-09-28 10:44:59 +08:00
guoshichao
203944b724
fs_fcntl: fix the ret value not check error
...
add ret value check on file_seek function to compat with misra rule
Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2024-09-27 00:20:53 +08:00
dongjiuzhu1
a2845faee3
fs/chmod/fchmod/lchmod: only set permissions by mode_t and ignore other bits
...
test case:
int main(void)
{
struct stat buf;
int ret;
stat("test1.t", &buf);
printf("test1.t st.mode:%x\n", buf.st_mode);
stat("test.t", &buf);
printf("test.t st.mode:%x\n", buf.st_mode);
ret = chmod("test1.t", buf.st_mode);
if (ret == 0)
{
stat("test1.t", &buf);
printf("test1.t st.mode:%x\n", buf.st_mode);
}
return 0;
}
>>
test1.t st.mode:81b4
test.t st.mode:81fd
test1.t st.mode:81fd
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-09-23 14:57:37 +08:00
chenrun1
03f215b374
nuttx/atomic.h:fix Fixed the pragma of ATOMIC_VAR_INIT in clang
...
Error: vfs/fs_epoll.c:126:3: error: macro 'ATOMIC_VAR_INIT' has been marked as deprecated [-Werror,-Wdeprecated-pragma]
ATOMIC_VAR_INIT(1), /* i_crefs */
^
/Applications/Xcode_15.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stdatomic.h:54:41: note: macro marked 'deprecated' here
^
1 error generated.
make[1]: *** [fs_epoll.o] Error 1
Error: socket/socket.c:78:3: error: macro 'ATOMIC_VAR_INIT' has been marked as deprecated [-Werror,-Wdeprecated-pragma]
ATOMIC_VAR_INIT(1), /* i_crefs */
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-09-23 14:07:03 +08:00
chenrun1
4cec713dbf
fs_inode:Change the type of i_crefs to atomic_int
...
Summary:
1.Modified the i_crefs from int16_t to atomic_int
2.Modified the i_crefs add, delete, read, and initialize interfaces to atomic operations
The purpose of this change is to avoid deadlock in cross-core scenarios, where A Core blocks B Core’s request for a write operation to A Core when A Core requests a read operation to B Core.
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-09-23 14:07:03 +08:00
Shoukui Zhang
5d3d123272
BCH: Add readonly configuration for BCH devices
...
Signed-off-by: Shoukui Zhang <zhangshoukui@xiaomi.com>
2024-09-19 03:53:20 +08:00
anjiahao
5952bc7392
fs_dup2:fix inode->i_crefs counting error
...
file_ioctl failed, but close success, inode need release
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2024-09-19 02:55:13 +08:00
YAMAMOTO Takashi
a78622d7bf
file_read: fix a bogus cast
2024-09-17 20:10:31 +08:00
Xiang Xiao
744da99250
Fix vfs/fs_fstatfs.c:60:21: warning: variable 'inode' set but not used
...
60 | FAR struct inode *inode;
| ^~~~~
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2024-09-17 12:01:53 +08:00
Shoukui Zhang
43223124ec
vfs/file: add reference counting to prevent accidental close during reading writing...
...
Signed-off-by: Shoukui Zhang <zhangshoukui@xiaomi.com>
2024-09-17 12:01:53 +08:00
wanggang26
89e5ceb51e
vfs:fix a type mismatch issue and a typo
...
Signed-off-by: wanggang26 <wanggang26@xiaomi.com>
2024-09-16 11:24:56 -03:00
wangjianyu3
1bb0f19fd5
fs/rename: Do not send notify if the same
...
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-15 10:11:42 +08:00
ligd
fab9369093
poll: fix thread_cancel() caused poll used after free
...
pthread 0 pthread1
fd 0
poll_setup
wait
cancel(thread 0)
fd 0 close
fd 0 notify (sem used after free)
poll_teardown
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-09-14 20:15:12 +08:00
ligd
6a2c03732f
clock: Replace all ts and tick conversion functions
...
Using the ts/tick conversion functions provided in clock.h
Do this caused we want speed up the time calculation, so change:
clock_time2ticks, clock_ticks2time, clock_timespec_add,
clock_timespec_compare, clock_timespec_subtract... to MACRO
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-09-12 18:14:39 +08:00
zhanghongyu
420648b0c6
drivers/pipes: add fcntl(F_SETPIPE_SZ/F_GETPIPE_SZ) support
...
allows user programs to modify pipe size, but not larger than
CONFIG_DEV_PIPE_MAXSIZE
Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2024-09-10 11:35:15 +08:00
hujun5
198630a809
sched: use this_task replace nxsched_self
...
reason:
We can reduce a function call to improve performance.
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2024-09-05 09:33:50 -03:00
Petro Karashchenko
1528b8dcca
nuttx: resolve various 'FAR' and 'CODE' issues
...
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2024-08-26 10:21:03 +08:00
buxiasen
946ed96926
fs: add fs_heap, support shm/tmpfs/pseudofile with indepent heap
...
For some case, need large files from tmpfs or shmfs, will lead to high
pressure on memory fragments, add an optional fs_heap with independent
heap will benifit for memory fragments issue.
Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2024-08-25 22:12:37 +08:00
guohao15
94e9599e5c
file_lock:fix memory alloc/free not match
...
Signed-off-by: guohao15 <guohao15@xiaomi.com>
2024-08-22 20:25:30 +08:00
chenrun1
271f76590f
fs_lock/pathbuffer:Optimize code structure
...
Summary:
Adjust code logic
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-08-22 01:54:22 +08:00
chenrun1
dba77ff043
fslock:Optimize the performance overhead caused by frequent close
...
Summary:
Indicate whether the file is currently locked by adding a new field locked to filep.
0 - Unlocked
1 - Locked
The status of the filep at close is used to determine whether to continue with the following procedure.
Optimizing performance:
Before
Time taken to close the file: 33984 nsec
After
Time taken to close the file: 23744 nsec
Improvement of about 10 msec
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-08-22 01:54:22 +08:00
chenrun1
c528244f19
fs_lock:Fixed the problem that in multi-threaded situations, the bucket may be deleted by other factors during the search process, resulting in assertion.
...
hsearch_r(item = (key = 0x61492174,data = ?),action = ?, retval = 0x6266AC44, htab = 0x6159B758) H 1tem = Ckey = 0x61492174, data= :
· action = ?
retval = 0x6266AC44
htab = 0x6159B758
haad - 0x61616300
ie= 0×38
file_lock_find_bucket(inline)
filepath = 0x61492174
hretvalue = 0x6055991D
item = (key = 0x61492174, data = 0x0)
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-08-22 01:54:22 +08:00
chenrun1
0bf2634631
fs_lock:Reduce stack size
...
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-08-22 01:54:22 +08:00
guohao15
86e00896d3
fs:notify add support for inotify
...
support API: open close read write unlink mkdir rename fchstat rmdir symlink
Signed-off-by: guohao15 <guohao15@xiaomi.com>
2024-08-22 01:50:37 +08:00
guohao15
bed1845333
inode:call inode_release when close success
...
inode will be double released
in close(fd) and files_putlist(&group->tg_filelist)
Signed-off-by: guohao15 <guohao15@xiaomi.com>
2024-08-21 13:31:25 +08:00
chenrun1
d65f8bd4c1
filelock:Move filelock call to ioctl
...
Forward the implementation originally placed in fcntl to ioctl. in order
to achieve cross-core.
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-08-18 19:56:49 +08:00
chenrun1
a1e3444df0
rpmsgfs:Support cross-core access using file locks on the same file
...
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-08-18 19:56:49 +08:00
Xiang Xiao
7c1768c167
fs/epoll: Double array size when it is full
...
correct the sequnce of array size from:
size, size, 2*size, 4*size, 8*size...
to:
size, 2*size, 4*size, 8*size, 16*size...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2024-08-17 00:19:15 +02:00
Xiang Xiao
56b2e7254a
fs/poll: Compute tick from millisecond by MSEC2TICK
...
reduce duplicate code
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2024-08-17 00:19:15 +02:00
Xu Xingliang
b0698daaa4
fs: tweak backtrace for file open
...
Signed-off-by: Xu Xingliang <xuxingliang@xiaomi.com>
2024-06-30 17:30:42 +08:00
Xu Xingliang
69d8a17dda
fs: add backtrace to where file opens
...
Signed-off-by: Xu Xingliang <xuxingliang@xiaomi.com>
2024-06-24 23:53:59 +08:00
Yanfeng Liu
ce0c98f0fd
fs/lock: prefer nxsched_self for modularity
...
Use of nxsched_self() is preferred from outside of the sched/ folder.
Signed-off-by: Yanfeng Liu <yfliu2008@qq.com>
2024-06-09 20:22:02 +08:00
hujun5
236ec9844f
fs: dup3 should pass the fdcheck & fdsan
...
Signed-off-by: hujun5 <hujun5@xiaomi.com>
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-03-07 09:08:48 +08:00
ligd
e1cd082c29
fs: enhance dup3() mulit-threads saftey
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-03-07 09:08:48 +08:00
hujun5
577eb47966
fdcheck: Enable fdcheck to automatically detect ownership of fd
...
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2024-03-07 09:08:48 +08:00
chao an
6d50274ebe
nuttx/list: rename container_of to list_container_of from public header
...
Use private naming to avoid conflicts with user applications
In file included from libuv/src/unix/internal.h:25,
from libuv/src/unix/udp.c:23:
libuv/src/uv-common.h:57: warning: "container_of" redefined
57 | #define container_of(ptr, type, member) \
|
In file included from nuttx/include/nuttx/list.h:47,
from nuttx/include/nuttx/tls.h:40,
from nuttx/include/nuttx/sched.h:48,
from nuttx/include/nuttx/arch.h:87,
from nuttx/include/nuttx/userspace.h:35,
from nuttx/include/nuttx/mm/mm.h:30,
from nuttx/include/nuttx/kmalloc.h:34,
from nuttx/include/nuttx/lib/lib.h:31,
from nuttx/include/stdio.h:35,
from apps/system/libuv/libuv/include/uv.h:59,
from libuv/src/unix/udp.c:22:
nuttx/include/nuttx/nuttx.h:48: note: this is the location of the previous definition
48 | #define container_of(ptr, type, member) \
|
Signed-off-by: chao an <anchao@lixiang.com>
2024-02-29 19:44:54 +08:00
chenrun1
ae730ac246
fs_lock:Avoid deadlock caused by KILL SIGNAL
...
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-02-21 13:29:36 -03:00
chenrun1
6e3e03f6b0
fs/vfs:cmakelists add fs_lock config
...
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-02-21 13:29:36 -03:00
Zhe Weng
14602be4cc
fs/lock: Limit inode type for file locks
...
When we close a socket fd, it will call get path on sockets.
`close(socket_fd)` -> `file_closelk(filep)` -> `file_fcntl(F_GETPATH)`
It causes a heavy stack load for each socket close operation.
(We have `GETPATH` for sockets to be used for `fdinfo`)
But the socket fds are not intended to be used for file locks.
And so do some other file types, so we may just limit the usage of flock.
Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2024-02-21 13:29:36 -03:00
chenrun1
8cdec83adb
fs_locks:Fix getlk's l pid return
...
When there is no conflicting lock, getlk should not tamper with the l_pid content from the upper layer
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-02-21 13:29:36 -03:00
chenrun1
5c6bd833ed
fs_lock:Implementing file locks
...
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-02-21 13:29:36 -03:00
Saurav Pal
93d03d0418
fs: Add VFS docs
...
This commit adds VFS docmentation, and details about the VFS interface.
Signed-off-by: Saurav Pal <resyfer.dev@gmail.com>
2024-02-20 18:28:09 -08:00
Ville Juven
f0846e1d2d
fs/shmfs: Fix stat() system call for shmfs object
...
Set i_size for shmfs objects
2024-02-02 09:12:18 -08:00
Ville Juven
43a26220be
fs/shmfs: Fix CONFIG_FS_SHM -> CONFIG_FS_SHMFS
...
The macro was wrong
2024-01-31 08:51:52 -08:00
chao an
8ff97f6210
compiler/tasking: fix unreachable code on tasking toolchain
...
ctc W544: ["serial/serial.c" 284/3] unreachable code
ctc W544: ["vfs/fs_lseek.c" 96/13] unreachable code
ctc W544: ["wqueue/kwork_thread.c" 210/32] unreachable code
ctc W544: ["stdio/lib_fopen.c" 327/19] unreachable code
ctc W544: ["stdio/lib_fopen.c" 404/13] unreachable code
ctc W544: ["string/lib_strcasestr.c" 120/3] unreachable code
ctc W544: ["unistd/lib_getopt_common.c" 156/21] unreachable code
ctc W544: ["unistd/lib_getopt_common.c" 216/21] unreachable code
ctc W544: ["wctype/lib_iswctype.c" 155/3] unreachable code
Signed-off-by: chao an <anchao@lixiang.com>
2024-01-30 20:53:00 -08:00
yinshengkai
9852428953
fs: procfs add poll support
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-12-26 19:23:13 -08:00
Xiang Xiao
eddd90de78
poll: pollsetup should notify only one fd passd by caller
...
since it's redundant to iterate the whole fds array in setup
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-11-21 09:07:17 +01:00