自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 f2fs二三事 block map 1

f2fs_map_blocks函数主要作用是为写入inode的数据分配内存空间(包括node block,data block),四个参数: 1) struct inode * inode: 操作的inode结构 2) struct f2fs_map_blocks * map:要写入的bloc...

2019-02-24 00:25:15

阅读数 142

评论数 0

原创 f2fs 二三事 get_dnode_of_data

/* * Caller should call f2fs_put_dnode(dn). * Also, it should grab and release a rwsem by calling f2fs_lock_op() and * f2fs_unlock_op() only if r...

2019-02-23 20:45:05

阅读数 59

评论数 0

原创 F2FS二三事

/*  * this structure is used as one of function parameters.  * all the information are dedicated to a given direct node block determined  * by the d...

2019-02-23 14:24:15

阅读数 120

评论数 0

翻译 Operating Systems: Three Easy Pieces-13 Address Spaces

Operating Systems: Three Easy Pieces 第十三章:Address Spaces 之前,建立一个电脑操作系统是非常容易的事情,也许你会问为什么?因为用户的期望很低。是那些“该死”的用户们,期望“易用”,“性能高”,“可靠”等,才导致所有的这些另人头疼的事情。下次...

2019-11-24 19:36:20

阅读数 6

评论数 0

原创 f2fs mkdir创建目录过程分析

不论是文件,还是目录,在文件系统中都由inode表示,本篇主要看一下创建一个目录f2fs都做了哪些事情,创建了哪些结构,什么样的格式,怎样最终存储到存储中。 SYSCALL_DEFINE3(mkdirat, int, dfd, const char __user *, pathname, u...

2019-11-09 18:42:13

阅读数 9

评论数 0

原创 f2fs nat/sit area存储格式及current_nat_addr

f2fs为了保护元数据的有效性及可恢复性,每个无数据区域均包含两个复本,如两个super block,两个check point segments,对于nat及sitarea,同样也包含两份。 对于nat area的存储方式,一直以来,都以为是先存一份,再存储另一份,类似于这种结构: 所以...

2019-10-20 23:58:43

阅读数 17

评论数 0

原创 f2fs write_checkpoint 过程分析

write_checkpoint主要负责把cache中dirty的数据写回到磁盘中,在gc, trim, discard或者recovery的时候都会调用到。 int write_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *c...

2019-10-19 16:34:53

阅读数 14

评论数 0

原创 f2fs gc garbage collect 过程分析

f2fs mount时,会启动garbage collect线程,garbage collect线程通过wait_event_interruptible_timeout函数,每隔一段时间,或者等待的condition为true时,判断是否需要执行garbage collect操作。 stati...

2019-10-13 13:59:50

阅读数 21

评论数 0

原创 f2fs get_node_path 函数过程分析

f2fs中比较有趣的一个函数get_node_path(),想要理解这个函数,需要对f2fs node及node中能够索引的地址理解清楚,先看一下f2fs inode的结构: 4KB * (923 + 2 * 1018 + 2 * 1018 * 1018 + 1018 * 1018 * 101...

2019-10-04 18:18:58

阅读数 18

评论数 0

原创 f2fs mkfs格式化系列3

前面讲了f2fs格式化主要进行了哪些操作,本篇看一下,mount过程中是如何读取格式化写到磁盘的那些内容的。 主要说一下如果读取f2fs meta data这些信息,mount过程还有一些比较重要的步骤,像build node management, build sit management后面...

2019-09-28 21:34:49

阅读数 22

评论数 0

原创 f2fs mkfs 格式化过程系列 2

前面两篇文章写了f2fs format过程中superblock和 cp填充的过程,格式化过程中主要是这两个meta data的填充有点不好理解,后面的部分相对来说比较容易,本篇说说后面的部分做的内容。 1, f2fs_init_sit_area() static int f2fs_ini...

2019-09-28 20:05:38

阅读数 13

评论数 0

原创 f2fs mkfs 格式化过程系列 0

f2fs开源的代码分为f2fs-tools与f2fs kernel代码,f2fs-tools的代码主要是格式化make_f2fs工具,fsck工具等,可以在开源网站 https://git.kernel.org/pub/scm/linux/kernel/git/上面下载。 格式化的源码在f2f...

2019-09-27 16:24:14

阅读数 34

评论数 0

原创 f2fs mkfs 格式化过程系列 1

本文以f2fs-tools 1.9为例,描述一下f2fs格式化过程做了那些事,都往f2fs mete data里面写了什么东西。 f2fs metedata包含sb, cp(2 segments), sit, nat, ssa, 先从cp开始,看一下格式化过程往这两个check point里面...

2019-09-06 08:10:26

阅读数 95

评论数 0

原创 f2fs rename

/** * before rename: /sdcard/logs/server * after rename: /sdcard/logs/server1 * old_dir: /sdcard/logs * new_dir: /sdcard/logs * old_dentry: dentry of...

2019-03-20 23:17:12

阅读数 36

评论数 0

提示
确定要删除当前文章?
取消 删除