2012-01-02 75 views
2

我想在我的內核模塊中獲取文件系統的文件系統掛載點,這是一個可堆疊的文件系統。例如,如果/ home/ab/abc是一個文件,並且/ home被安裝在不同的文件系統上,我希望將dentry或路徑結構設置爲/ home。 我想在不修改內核代碼的情況下在模塊中執行此操作。 例如/ home/user /中有一個文件,現在我想知道該文件在哪個分區中。例如,該文件可能位於與「/」相同的分區中,或者該文件可能位於安裝在/ home或/ home/user上的另一個分區中。在內核模塊中獲取文件系統掛載點

回答

5

您可以從current->namespace獲取文件系統列表。通過迭代current->namespace->list(項目爲struct vfsmount),您可以獲取所有已安裝的文件系統。 vfsmount->mnt_mountpoint是你想要的目錄條目。

您可以按照代碼prints /proc/mounts(例如base.c/mountstats_open,namespace.c/m_start)獲取更多詳細信息(例如需要某些鎖定)。

但是,我不知道你是否可以在內核模塊中做到這一點。

+0

感謝您的答覆。其實我想知道如何知道特定文件的掛載點。如果你能看看它,我已經編輯過這個問題。 – gaurav 2012-01-04 17:14:13

相關問題