@@ -1346,7 +1346,12 @@ static long hmfs_fallocate(struct file *file, int mode, loff_t offset,
13461346
13471347#define HMFS_REG_FLMASK (~(FS_DIRSYNC_FL | FS_TOPDIR_FL))
13481348#define HMFS_OTHER_FLMASK (FS_NODUMP_FL | FS_NOATIME_FL)
1349-
1349+ /*
1350+ * 对于@flags进行掩码处理
1351+ * @mode对应目录文件时直接返回falgs
1352+ * @mode对应普通文件时返回flags & HMFS_REG_FLMASK
1353+ * 其他情况时返回flags & HMFS_OTHER_FLMASK
1354+ */
13501355static inline __u32 hmfs_mask_flags (umode_t mode , __u32 flags )
13511356{
13521357 if (S_ISDIR (mode ))
@@ -1356,7 +1361,15 @@ static inline __u32 hmfs_mask_flags(umode_t mode, __u32 flags)
13561361 else
13571362 return flags & HMFS_OTHER_FLMASK ;
13581363}
1359-
1364+ /*
1365+ * 向设备发送或接收控制信息
1366+ * @filp指向设备文件标识符
1367+ * @arg指向用户空间目标地址
1368+ * @cmd为HMFS_IOC_GETFLAGS时,将i_flags中用户可见位发送到用户空间目标地址
1369+ * @cmd为HMFS_IOC_SETFLAGS时,将用户空间目标地址的值复制到flags中
1370+ * @cmd为HMFS_IOC_GETVERSION时,将i_generation发送到用户空间目标地址
1371+ * 若不符合以上任何一种情况则返回-ENOTTY
1372+ */
13601373long hmfs_ioctl (struct file * filp , unsigned int cmd , unsigned long arg )
13611374{
13621375 struct inode * inode = file_inode (filp );
@@ -1415,6 +1428,13 @@ long hmfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
14151428}
14161429
14171430#ifdef CONFIG_COMPAT
1431+ /*
1432+ * hmfs_ioctl函数的兼容性包装函数
1433+ * 向设备发送或接收控制信息
1434+ * @filp指向设备文件标识符
1435+ * @arg指向用户空间目标地址
1436+ * 调整@cmd的值再调用hmfs_ioctl发送或接收控制信息
1437+ */
14181438long hmfs_compat_ioctl (struct file * file , unsigned int cmd , unsigned long arg )
14191439{
14201440 switch (cmd ) {
@@ -1462,7 +1482,10 @@ const struct inode_operations hmfs_file_inode_operations = {
14621482 .removexattr = generic_removexattr ,
14631483#endif
14641484};
1465-
1485+ /*
1486+ * 创建slab高速缓存,使mmap_block_slab指向缓存
1487+ * 成功返回0,失败返回-ENOMEM
1488+ */
14661489int create_mmap_struct_cache (void )
14671490{
14681491 mmap_block_slab = hmfs_kmem_cache_create ("hmfs_mmap_block" ,
@@ -1471,7 +1494,9 @@ int create_mmap_struct_cache(void)
14711494 return - ENOMEM ;
14721495 return 0 ;
14731496}
1474-
1497+ /*
1498+ * 销毁mmap_block_slab指向的slab高速缓存
1499+ */
14751500void destroy_mmap_struct_cache (void )
14761501{
14771502 kmem_cache_destroy (mmap_block_slab );
0 commit comments