linux檔案系統omfs檔案的重新命名

2021-06-03 18:32:58 字數 1347 閱讀 8223

在omfs_rename中下斷點:

breakpoint 4, omfs_rename (old_dir=0xddf2cca8, old_dentry=0xdde57330,

new_dir=0xddf2cca8, new_dentry=0xddf2f220) at fs/omfs/dir.c:392

touch   aaaa

mv  aaaa  bbbb

函式堆疊如下:

#0  omfs_rename (old_dir=0xddf2cca8, old_dentry=0xdde57330,

new_dir=0xddf2cca8, new_dentry=0xddf2f220) at fs/omfs/dir.c:392

#1  0xc02a0a8f in vfs_rename_other (old_dir=0xddf2cca8, old_dentry=0xdde57330,

new_dir=0xddf2cca8, new_dentry=0xddf2f220) at fs/namei.c:2619

#2  0xc02a0bee in vfs_rename (old_dir=0xddf2cca8, old_dentry=0xdde57330,

new_dir=0xddf2cca8, new_dentry=0xddf2f220) at fs/namei.c:2661

#3  0xc02a0e21 in sys_renameat (olddfd=-100, oldname=0xbfb8d933 "aaaa",

newdfd=-100, newname=0xbfb8d938 "bbbb") at fs/namei.c:2744

#4  0xc02a0ecd in sys_rename (oldname=0xbfb8d933 "aaaa",

newname=0xbfb8d938 "bbbb") at fs/namei.c:2766

#5  0xc0104657 in ?? () at arch/x86/kernel/entry_32.s:457

sys_renameàsys_renameatàvfs_renameàvfs_rename_otheràomfs_rename

old_dir和new_dir都是」/」的inode,old_dentry是」aaaa」的dentry,new_dentry是」bbbb」的dentry。

如果new_dentry是不存在的,那麼刪除原先的(omfs_unlink(old_dir, old_dentry);),

再在omfs_add_link(new_dentry, old_inode);

如果new_dentry存在,那麼就是覆蓋,在上面的步驟之前要omfs_unlink(new_dir, new_dentry);

linux檔案系統omfs的普通檔案建立和刪除

omfs的普通檔案的建立刪除與目錄建立刪除的動作非常類似,下面僅僅描述一下 在omfs create處下斷點 breakpoint 3,omfs create dir 0xdde13c20,dentry 0xdf6f6440,mode 33188,nd 0xddbe1eb8 at fs omfs d...

linux 檔案系統 Linux 檔案系統結構介紹

ubuntu 像所有類unix系統一樣 在分層樹中組織檔案,其中的關係就像父母和孩子一樣。目錄可以包含其他目錄以及常規檔案,它們是樹的 葉子 樹的任何元素都可以通過路徑名引用 絕對路徑以字元 標識根目錄,其中包含所有其他目錄和檔案 開頭,然後列出必須遍歷以到達該元素的每個子目錄,每個子目錄用 符號分...

linux檔案系統與根檔案系統

檔案系統 與 根檔案系統 要不我們就統一簡稱為fs和rfs 檔案系統 file system fs 根檔案系統 root file system rfs。首先你考慮一點描述語句 根檔案系統也是一種 檔案系統 可以認為是一種 特殊的 檔案系統 為什麼是叫 特殊的 呢?是因為這種 根 檔案系統 承載著某...