1
如果我需要存儲特定於inode的數據,我可以使用此字段嗎? 上下文是我正在編寫的一個linux模塊,它需要爲每個inode保存一個特定的結構(這個模塊的每個設備都有一個inode)。inode i_private字段存儲私人數據
我知道在文件描述符中,我可以將數據存儲在private_data字段中。 i_private inode的「對應」字段?
如果我需要存儲特定於inode的數據,我可以使用此字段嗎? 上下文是我正在編寫的一個linux模塊,它需要爲每個inode保存一個特定的結構(這個模塊的每個設備都有一個inode)。inode i_private字段存儲私人數據
我知道在文件描述符中,我可以將數據存儲在private_data字段中。 i_private inode的「對應」字段?
此字段由fs驅動程序使用。從ext4.h摘錄:
static inline ext4_io_end_t *ext4_inode_aio(struct inode *inode)
{
return inode->i_private;
}
static inline void ext4_inode_aio_set(struct inode *inode, ext4_io_end_t *io)
{
inode->i_private = io;
}
所以,如果你正在寫自己的文件系統,然後它是完全確定。但是,如果您使用現有文件系統的inode,則不應該這樣做,因爲您會損壞inode。
是否有一個字段,如文件描述符struct中的private_data,我可以使用它來存儲我自己的數據而不破壞inode? – Binary
你在做什麼inode? –
我正在創建一個名爲'abc'的字符設備模塊。 我需要爲每個設備存儲一個結構('abc0','abc1',...),因此每個將在特定設備上調用open()的用戶將獲得設備的相應結構。 即,如果兩個進程調用open(abc0,..),他們可以訪問相同的結構。 – Binary