unix 创建html文件路径,Btrfs 创建目录和文件的操作
之前的笔记里有篇介绍ext3 dir-entry lookup(http://blog.chinaunix.net/u3/110888/showart_2156666.html)。对于目录/文件的创建及查找操作学习,算是了解一个文件系统的入口吧。
btrfs这部分代码太烦琐,暂时不想掉进code 细节,只从函数调用层面简单理解其操作逻辑。这一点和学习ext2/3的方式不一样,由于btrfs许多feature,听起来很酷,先理解这些feature是如何实现的。在网上找到的btrfs的文档不多,身边也没有比较方便的讨论环境,代码定得既乱而杂,目前入于不稳定版本,于是乎,换一种学习方式啦。(其实我真想弃而学习ext4)
1 目录创建 mkdir
简单地说分两步,
1) 创建目录inode,加入父目录所在的subvolume btrfs_root.
2) add link,作为父目录的dir item,插入其inode对应leaf。(总体上看inode聚合成一个个小树)
第一个很简单,FS btrfs_root存放所有的inode.第二步可以与ext2/3相比较来看。 ext3中一个inode如果代表的是dir,其data block里存放的是本目录下的目录+文件对应的entry. btrfs中,menta-data是存放在leaf中的item,所以有个disk_key表示的dir-entries类型在leaf某偏移。data区则存放的是btrfs_dir_item,用于找到某entry对应的inode disk-key。 不同类型的item数据可在fs/btrfs/ctree里看到。
简单看下btrfs_mkdir operations:
1.reserve 5 items for new inode
2. start transaction
3. find a free object id from root tree
4. create new inode by btrfs_new_inode(). this function is interesting,it will build up the simple structure of a new inode in the btree..
5. initialize inode's i_op/i_fop
6. add link of inode and its parent for future lookup
2. 创建文件
it's nearly the same as mkdir() ,only different is after creating the new inode,need initialize its i_fop/op and i_mapping operatoins to default one.
3. btrfs_lookup
i was confused by the deep detail operations of lookup. acturally speaking, btrfs_lookup_dir_item() helper functin will do all tings.
The parent_inode_objectid + btrfs_dir_item_key+hash-name-offset is the search key ,after search the slot,cat get the specific item,and now it's okay to read item data to know the target inode's disk_key. next ,you will get the inode by searching the root tree.
得赶紧闪了,我的车在楼下快被人偷了。 :--)
END.
unix 创建html文件路径,Btrfs 创建目录和文件的操作相关推荐
- linux C传入路径递归创建目录和文件接口实现
本文封装了C 传入路径递归创建目录和文件接口实现,文末有提供示例代码: eg:传入./dir1/dir2/dir3/dir4/file0 可自动在当前目录创建dir1/dir2/dir3/dir4/四 ...
- fopen文件路径怎么写_PHP文件上传
文件系统处理的作用: 1. 所有的项目离不开文件处理 2. 可以用文件长时间保存数据 3. 建立缓存, 服务器中文件操作 文件处理 1. 文件类型 以Linux为模型的, 在Windows只能获取fi ...
- java 通过文件路径获得MulipartFile类型文件 - File转MulipartFile
java 通过文件路径获得MulipartFile类型文件 - File转MulipartFile 方式一:使用MockMultipartFile函数 方式二:数据流实现 思路:路径创建出File文件 ...
- python进阶14文件路径(找不到文件)
原创链接:python进阶14文件路径(找不到文件) 开发时遇到问题,文件路径不正确,找不到文件等等,都是这一类问题. curdir,argv,file 举例: 文件1代码: 1 2 3 4 5 6 ...
- linux 新建1 10文件夹,linux创建目录和文件的命令
linux下进行操作难免会遇到创建文件或者目录的情况,那么我们要使用什么目录来创建目录和文件呢?下面由学习啦小编为大家整理了linux创建目录和文件命令的相关知识,希望大家喜欢! 一.linux创建目 ...
- python 如何获取文件路径_Python如何获取文件路径/目录
一.获取文件路径实现 1.1 获取当前文件路径 import os current_file_path = __file__ print(f"current_file_path: {curr ...
- tp5上传文件并获取文件路径_TP5上传文件
TP5上传文件与上传图片雷同!!!!!其实都差不多的!!!!用到了js插件 1.首先引用 2.form表单内 最重要的就是 这个属性 enctype="multipart/for ...
- python指定文件路径_python实现指定文件夹下的指定文件移动到指定位置
# coding:utf-8 import os import shutil import sys reload(sys) sys.setdefaultencoding('utf8') # print ...
- input file获取文件路径_python 基础 — 整理文件
点击上方蓝字"Python圈子",进行关注~ 前言 文件整理常常会浪费很多时间.但如果让机器来做这样复杂的事情,不到 10 秒钟就能完成 1 个小时工作. 整理方式 进行文件整理最 ...
- c 服务器文件路径,c打开服务器文件路径
c打开服务器文件路径 内容精选 换一换 文件作用:可以关闭/打开监听端口.指定监听端口.指定监听IP等.文件路径:Atlas 300场景下,在Host侧服务器上,在~/ide_daemon目录下查看i ...
最新文章
- java 重写set方法_Java程序设计-方法的重写(override)(笔记)
- 已经感冒好长一段时间了 不过今天我的新blog开张
- 前后端分离微服务架构如何设计?
- 教你玩转CSS表格(table)
- PWN-PRACTICE-BUUCTF-20
- Andorid 系统性能优化---(22)Android性能相关常用命令收集
- caffe+vs2013+window10+GPU(CPU)配置
- ERROR: No matching distribution found for numpy
- Asp.net 1.0与ASP.NET 2.0的异同
- 移动100m宽带慢的要死_为什么同样是100M的宽带, 中国移动就是比中国电信卡慢...
- Javaweb项目导出Excel文件无法下载问题
- 【知识点总结】模拟电子技术(模电)
- 华为服务器控制口地址修改,服务器修改管理口地址
- 青鸟云题库2018年8月26日15:20:28 springmvc错题总结
- “感动中国”2012年度人物颁奖词
- css 设置元素背景为透明
- 用HTML制作简单的个人介绍主页
- 蓝色TADF分子3DPyM-pDTC,2DPyM-mDTC,2DPyM-mDBr ,3DPyM-pDBr:蓝色热激活延迟荧光材料
- 【计算机网络】TCP为什么需要4次挥手
- PanDownload-百度网盘高速下载神级利器