⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000046.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 5 页
字号:
16.&nbsp;writev&nbsp;-&nbsp;implements&nbsp;writev(2)&nbsp;system&nbsp;call&nbsp;<BR>3.5&nbsp;Superblock&nbsp;and&nbsp;Mountpoint&nbsp;Management&nbsp;<BR>Under&nbsp;Linux,&nbsp;information&nbsp;about&nbsp;mounted&nbsp;filesystems&nbsp;is&nbsp;kept&nbsp;in&nbsp;two&nbsp;separate&nbsp;s&nbsp;<BR>tructures&nbsp;-&nbsp;super_block&nbsp;and&nbsp;vfsmount.&nbsp;The&nbsp;reason&nbsp;for&nbsp;this&nbsp;is&nbsp;that&nbsp;Linux&nbsp;allo&nbsp;<BR>ws&nbsp;to&nbsp;mount&nbsp;the&nbsp;same&nbsp;filesystem&nbsp;(block&nbsp;device)&nbsp;under&nbsp;multiple&nbsp;mount&nbsp;points,&nbsp;&nbsp;<BR>which&nbsp;means&nbsp;that&nbsp;the&nbsp;same&nbsp;super_block&nbsp;can&nbsp;correspond&nbsp;to&nbsp;multiple&nbsp;vfsmount&nbsp;st&nbsp;<BR>ructures.&nbsp;<BR>Let&nbsp;us&nbsp;look&nbsp;at&nbsp;struct&nbsp;super_block&nbsp;first,&nbsp;declared&nbsp;in&nbsp;include/linux/fs.h:&nbsp;<BR>struct&nbsp;super_block&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;list_head&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s_list;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Keep&nbsp;this&nbsp;first&nbsp;*/&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kdev_t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s_dev;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s_blocksize;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s_blocksize_bits;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s_lock;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s_dirt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;file_system_type&nbsp;*s_type;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;super_operations&nbsp;*s_op;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;dquot_operations&nbsp;*dq_op;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s_flags;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s_magic;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;dentry&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*s_root;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait_queue_head_t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s_wait;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;list_head&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s_dirty;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;dirty&nbsp;inodes&nbsp;*/&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;list_head&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s_files;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;block_device&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*s_bdev;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;list_head&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s_mounts;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;vfsmount(s)&nbsp;of&nbsp;this&nbsp;one&nbsp;*&nbsp;<BR>/&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;quota_mount_options&nbsp;s_dquot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Diskquota&nbsp;specific&nbsp;option&nbsp;<BR>s&nbsp;*/&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;union&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;minix_sb_info&nbsp;&nbsp;&nbsp;&nbsp;minix_sb;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;ext2_sb_info&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ext2_sb;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.....&nbsp;all&nbsp;filesystems&nbsp;that&nbsp;need&nbsp;sb-private&nbsp;info&nbsp;...&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*generic_sbp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;u;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;The&nbsp;next&nbsp;field&nbsp;is&nbsp;for&nbsp;VFS&nbsp;*only*.&nbsp;No&nbsp;filesystems&nbsp;have&nbsp;any&nbsp;busines&nbsp;<BR>s&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;even&nbsp;looking&nbsp;at&nbsp;it.&nbsp;You&nbsp;had&nbsp;been&nbsp;warned.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;semaphore&nbsp;s_vfs_rename_sem;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Kludge&nbsp;*/&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;The&nbsp;next&nbsp;field&nbsp;is&nbsp;used&nbsp;by&nbsp;knfsd&nbsp;when&nbsp;converting&nbsp;a&nbsp;(inode&nbsp;number&nbsp;b&nbsp;<BR>ased)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;file&nbsp;handle&nbsp;into&nbsp;a&nbsp;dentry.&nbsp;As&nbsp;it&nbsp;builds&nbsp;a&nbsp;path&nbsp;in&nbsp;the&nbsp;dcache&nbsp;tree&nbsp;<BR>&nbsp;from&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;the&nbsp;bottom&nbsp;up,&nbsp;there&nbsp;may&nbsp;for&nbsp;a&nbsp;time&nbsp;be&nbsp;a&nbsp;subpath&nbsp;of&nbsp;dentrys&nbsp;which&nbsp;<BR>&nbsp;is&nbsp;not&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;connected&nbsp;to&nbsp;the&nbsp;main&nbsp;tree.&nbsp;&nbsp;This&nbsp;semaphore&nbsp;ensure&nbsp;that&nbsp;there&nbsp;is&nbsp;&nbsp;<BR>only&nbsp;ever&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;one&nbsp;such&nbsp;free&nbsp;path&nbsp;per&nbsp;filesystem.&nbsp;&nbsp;Note&nbsp;that&nbsp;unconnected&nbsp;files&nbsp;(&nbsp;<BR>or&nbsp;other&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;non-directories)&nbsp;are&nbsp;allowed,&nbsp;but&nbsp;not&nbsp;unconnected&nbsp;diretories.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;semaphore&nbsp;s_nfsd_free_path_sem;&nbsp;<BR>};&nbsp;<BR>The&nbsp;various&nbsp;fields&nbsp;in&nbsp;the&nbsp;super_block&nbsp;structure&nbsp;are:&nbsp;<BR>1.&nbsp;s_list&nbsp;-&nbsp;a&nbsp;doubly-linked&nbsp;list&nbsp;of&nbsp;all&nbsp;active&nbsp;superblocks,&nbsp;note&nbsp;I&nbsp;don't&nbsp;say&nbsp;<BR>&nbsp;&quot;of&nbsp;all&nbsp;mounted&nbsp;filesystems&quot;&nbsp;because&nbsp;under&nbsp;Linux&nbsp;one&nbsp;can&nbsp;have&nbsp;multiple&nbsp;inst&nbsp;<BR>ances&nbsp;of&nbsp;a&nbsp;mounted&nbsp;filesystem&nbsp;corresponding&nbsp;to&nbsp;a&nbsp;single&nbsp;superblock&nbsp;<BR>2.&nbsp;s_dev&nbsp;-&nbsp;for&nbsp;filesystems&nbsp;which&nbsp;require&nbsp;a&nbsp;block&nbsp;to&nbsp;be&nbsp;mounted&nbsp;on,&nbsp;i.e.&nbsp;for&nbsp;&nbsp;<BR>FS_REQUIRES_DEV&nbsp;filesystems,&nbsp;this&nbsp;is&nbsp;the&nbsp;i_dev&nbsp;of&nbsp;the&nbsp;block&nbsp;device.&nbsp;For&nbsp;othe&nbsp;<BR>rs&nbsp;(called&nbsp;anonymous&nbsp;filesystems)&nbsp;this&nbsp;is&nbsp;an&nbsp;integer&nbsp;MKDEV(UNNAMED_MAJOR,&nbsp;i)&nbsp;<BR>&nbsp;where&nbsp;i&nbsp;is&nbsp;the&nbsp;first&nbsp;unset&nbsp;bit&nbsp;in&nbsp;unnamed_dev_in_use&nbsp;array,&nbsp;between&nbsp;1&nbsp;and&nbsp;2&nbsp;<BR>55&nbsp;inclusive.&nbsp;See&nbsp;fs/super.c:get_unnamed_dev()/put_unnamed_dev().&nbsp;It&nbsp;has&nbsp;bee&nbsp;<BR>n&nbsp;suggested&nbsp;many&nbsp;times&nbsp;that&nbsp;anonymous&nbsp;filesystems&nbsp;should&nbsp;not&nbsp;use&nbsp;s_dev&nbsp;field&nbsp;<BR>&nbsp;<BR>3.&nbsp;s_blocksize,&nbsp;s_blocksize_bits&nbsp;-&nbsp;blocksize&nbsp;and&nbsp;log2(blocksize)&nbsp;<BR>4.&nbsp;s_lock&nbsp;-&nbsp;indicates&nbsp;whether&nbsp;superblock&nbsp;is&nbsp;currently&nbsp;locked&nbsp;by&nbsp;lock_super()&nbsp;<BR>/unlock_super()&nbsp;<BR>5.&nbsp;s_dirt&nbsp;-&nbsp;set&nbsp;when&nbsp;superblock&nbsp;is&nbsp;changed&nbsp;and&nbsp;cleared&nbsp;whenever&nbsp;it&nbsp;is&nbsp;writte&nbsp;<BR>n&nbsp;back&nbsp;to&nbsp;disk&nbsp;<BR>6.&nbsp;s_type&nbsp;-&nbsp;pointer&nbsp;to&nbsp;'struct&nbsp;file_system_type'&nbsp;of&nbsp;the&nbsp;corresponding&nbsp;filesy&nbsp;<BR>stem.&nbsp;Filesystem's&nbsp;read_super()&nbsp;method&nbsp;doesn't&nbsp;need&nbsp;to&nbsp;set&nbsp;it&nbsp;as&nbsp;VFS&nbsp;fs/supe&nbsp;<BR>r.c:read_super()&nbsp;sets&nbsp;it&nbsp;for&nbsp;you&nbsp;if&nbsp;fs-specific&nbsp;read_super()&nbsp;succeeds&nbsp;and&nbsp;re&nbsp;<BR>sets&nbsp;to&nbsp;NULL&nbsp;if&nbsp;it&nbsp;fails&nbsp;<BR>7.&nbsp;s_op&nbsp;-&nbsp;pointer&nbsp;to&nbsp;super_operations&nbsp;structure&nbsp;which&nbsp;contains&nbsp;fs-specific&nbsp;m&nbsp;<BR>ethods&nbsp;to&nbsp;read/write&nbsp;inodes&nbsp;etc.&nbsp;It&nbsp;is&nbsp;the&nbsp;job&nbsp;of&nbsp;filesystem's&nbsp;read_super()&nbsp;&nbsp;<BR>method&nbsp;to&nbsp;initialise&nbsp;s_op&nbsp;correctly&nbsp;<BR>8.&nbsp;dq_op&nbsp;-&nbsp;disk&nbsp;quota&nbsp;operations&nbsp;<BR>9.&nbsp;s_flags&nbsp;-&nbsp;superblock&nbsp;flags&nbsp;<BR>10.&nbsp;s_magic&nbsp;-&nbsp;filesystem's&nbsp;magic&nbsp;number.&nbsp;Used&nbsp;by&nbsp;minix&nbsp;filesystem&nbsp;to&nbsp;differe&nbsp;<BR>ntiate&nbsp;between&nbsp;multiple&nbsp;flavours&nbsp;of&nbsp;itself&nbsp;<BR>11.&nbsp;s_root&nbsp;-&nbsp;dentry&nbsp;of&nbsp;the&nbsp;filesystem's&nbsp;root.&nbsp;It&nbsp;is&nbsp;the&nbsp;job&nbsp;of&nbsp;read_super()&nbsp;&nbsp;<BR>to&nbsp;read&nbsp;the&nbsp;root&nbsp;inode&nbsp;from&nbsp;the&nbsp;disk&nbsp;and&nbsp;pass&nbsp;it&nbsp;to&nbsp;d_alloc_root()&nbsp;to&nbsp;alloca&nbsp;<BR>te&nbsp;the&nbsp;dentry&nbsp;and&nbsp;instantiate&nbsp;it.&nbsp;Some&nbsp;filesystems&nbsp;spell&nbsp;&quot;root&quot;&nbsp;other&nbsp;than&nbsp;&quot;&nbsp;<BR>/&quot;&nbsp;and&nbsp;so&nbsp;use&nbsp;more&nbsp;generic&nbsp;d_alloc()&nbsp;function&nbsp;to&nbsp;bind&nbsp;the&nbsp;dentry&nbsp;to&nbsp;a&nbsp;name,&nbsp;&nbsp;<BR>e.g.&nbsp;pipefs&nbsp;mounts&nbsp;itself&nbsp;on&nbsp;&quot;pipe:&quot;&nbsp;as&nbsp;its&nbsp;own&nbsp;root&nbsp;instead&nbsp;of&nbsp;&quot;/&quot;&nbsp;<BR>12.&nbsp;s_wait&nbsp;-&nbsp;waitqueue&nbsp;of&nbsp;processes&nbsp;waiting&nbsp;for&nbsp;superblock&nbsp;to&nbsp;be&nbsp;unlocked&nbsp;<BR>13.&nbsp;s_dirty&nbsp;-&nbsp;a&nbsp;list&nbsp;of&nbsp;all&nbsp;dirty&nbsp;inodes.&nbsp;Recall&nbsp;that&nbsp;if&nbsp;inode&nbsp;is&nbsp;dirty&nbsp;(ino&nbsp;<BR>de-i_state&nbsp;&amp;&nbsp;I_DIRTY)&nbsp;then&nbsp;it&nbsp;is&nbsp;on&nbsp;superblock-specific&nbsp;dirty&nbsp;list&nbsp;linked&nbsp;vi&nbsp;<BR>a&nbsp;inode-i_list&nbsp;<BR>14.&nbsp;s_files&nbsp;-&nbsp;a&nbsp;list&nbsp;of&nbsp;all&nbsp;open&nbsp;files&nbsp;on&nbsp;this&nbsp;superblock.&nbsp;Useful&nbsp;for&nbsp;decidi&nbsp;<BR>ng&nbsp;whether&nbsp;filesystem&nbsp;can&nbsp;be&nbsp;remounted&nbsp;read-only,&nbsp;see&nbsp;fs/file_table.c:fs_may&nbsp;<BR>_remount_ro()&nbsp;which&nbsp;goes&nbsp;through&nbsp;sb-s_files&nbsp;list&nbsp;and&nbsp;denies&nbsp;remounting&nbsp;if&nbsp;th&nbsp;<BR>ere&nbsp;are&nbsp;files&nbsp;opened&nbsp;for&nbsp;write&nbsp;(file-f_mode&nbsp;&amp;&nbsp;FMODE_WRITE)&nbsp;or&nbsp;files&nbsp;with&nbsp;pen&nbsp;<BR>ding&nbsp;unlink&nbsp;(inode-i_nlink&nbsp;==&nbsp;0)&nbsp;<BR>15.&nbsp;s_bdev&nbsp;-&nbsp;for&nbsp;FS_REQUIRES_DEV&nbsp;this&nbsp;points&nbsp;to&nbsp;the&nbsp;block_device&nbsp;structure&nbsp;d&nbsp;<BR>escribing&nbsp;the&nbsp;device&nbsp;the&nbsp;filesystem&nbsp;is&nbsp;mounted&nbsp;on&nbsp;<BR>16.&nbsp;s_mounts&nbsp;-&nbsp;a&nbsp;list&nbsp;of&nbsp;all&nbsp;vfsmount&nbsp;structures,&nbsp;one&nbsp;for&nbsp;each&nbsp;mounted&nbsp;insta&nbsp;<BR>nce&nbsp;of&nbsp;this&nbsp;superblock&nbsp;<BR>17.&nbsp;s_dquot&nbsp;-&nbsp;more&nbsp;diskquota&nbsp;stuff&nbsp;<BR>The&nbsp;superblock&nbsp;operations&nbsp;are&nbsp;described&nbsp;in&nbsp;the&nbsp;super_operations&nbsp;structure&nbsp;de&nbsp;<BR>clared&nbsp;in&nbsp;include/linux/fs.h:&nbsp;<BR>struct&nbsp;super_operations&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;(*read_inode)&nbsp;(struct&nbsp;inode&nbsp;*);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;(*write_inode)&nbsp;(struct&nbsp;inode&nbsp;*,&nbsp;int);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;(*put_inode)&nbsp;(struct&nbsp;inode&nbsp;*);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;(*delete_inode)&nbsp;(struct&nbsp;inode&nbsp;*);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;(*put_super)&nbsp;(struct&nbsp;super_block&nbsp;*);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;(*write_super)&nbsp;(struct&nbsp;super_block&nbsp;*);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -