在fs.h找到它:

static inline void file_start_write(struct file *file)

{

if (!S_ISREG(file_inode(file)->i_mode))

return;

__sb_start_write(file_inode(file)->i_sb, SB_FREEZE_WRITE, true);

}

然后在super.c:

/*

* This is an internal function, please use sb_start_{write,pagefault,intwrite}

* instead.

*/

int __sb_start_write(struct super_block *sb, int level, bool wait)

{

bool force_trylock = false;

int ret = 1;

#ifdef CONFIG_LOCKDEP

/*

* We want lockdep to tell us about possible deadlocks with freezing

* but it's it bit tricky to properly instrument it. Getting a freeze

* protection works as getting a read lock but there are subtle

* problems. XFS for example gets freeze protection on internal level

* twice in some cases, which is OK only because we already hold a

* freeze protection also on higher level. Due to these cases we have

* to use wait == F (trylock mode) which must not fail.

*/

if (wait) {

int i;

for (i = 0; i < level - 1; i++)

if (percpu_rwsem_is_held(sb->s_writers.rw_sem + i)) {

force_trylock = true;

break;

}

}

#endif

if (wait && !force_trylock)

percpu_down_read(sb->s_writers.rw_sem + level-1);

else

ret = percpu_down_read_trylock(sb->s_writers.rw_sem + level-1);

WARN_ON(force_trylock & !ret);

return ret;

}

EXPORT_SYMBOL(__sb_start_write);

再次感谢。

linux proc文件 write的原子性,linux - Linux中writev()系统调用的原子性 - 堆栈内存溢出...相关推荐

  1. python查找文件中某些字符串_python - Python无法从2个文件的字符串搜索中提取数据吗? - 堆栈内存溢出...

    我使用此代码在2个文件中搜索和比较字符串 fsig = open('file1.txt', 'r', encoding="utf8") fresult = open('file2. ...

  2. linux中的文件夹压缩文件,linux将文件拷贝到目录下Linux下文件的压缩与打包详解...

    在Linux中,有很多的压缩命令.利用这些压缩命令,可以方便的从网络上下载大型的文件.同时,我们知道,Linux文件的扩展名是没有特殊意义的,不过,因为Linux下存在着许多压缩命令,所以为了方便记忆 ...

  3. linux下载文件夹到本地命令行,linux下载文件到本地命令,linux下载文件到本地命令 下载工具...

    linux下载文件到本地命令,linux下载文件到本地命令 下载工具 来源:互联网/编辑:佚名/时间:2020-09-08 在手机上看 扫一扫进入手机端 linux用户命令在哪个文件夹下 用 whic ...

  4. linux proc文件 write的原子性,Linux命令之write调用的原子性

    linux命令是对Linux系统进行管理的命令.本文介绍的关于linux命令中write调用的原子性的详细描述,具体内容如下所述. UNIX环境高级编程中关于原子操作的介绍,其中有一种情形是在文件尾端 ...

  5. linux 日志文件被占用下不来怎么办,linux 磁盘空间被占满但找不到目标文件的问题处理 lsof命令...

    lsof简介 在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能. 直接输入lsof部分输出为: 每行 ...

  6. linux用户文件描述符2表示,Linux下文件描述符

    Linux下文件描述符 文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket.第一个打开的文件是0,第二个是1,依此类推.Unix操作系 统通常给每个进程能打开的文件数量强加一个 ...

  7. linux把文件复制到压缩包里,Linux学习笔记(二十)文件压缩 zip压缩、tar打包、打包、解包...

    一.zip压缩 首先安装zip与unzip yum install -y zip/unzip zip 1.txt.zip 1.txt 压缩文件1.txt,压缩文件名称为1.txt.zip zip -r ...

  8. linux遍历文件夹下所有文件大小,Linux系统遍历文件夹 获取文件大小的操作(C语言实现)...

    /** linux 下遍历文件夹以及获取文件大小 */ #include #include #include #include /** 获取文件大小,但是文件大小不能超过2G ,该方法不推荐使用 */ ...

  9. linux去重文件第一列,科学网—Linux实用命令 - 刘洪波的博文

    1.查看系统访问日志(实时) tail --lines=100 -f /var/log/secure 2.按列合并文件 paste file1 file2 >combind.txt 3.按行合并 ...

  10. linux git文件图标,分享|三款 Linux 下的 Git 图形客户端

    了解这三个 Git 图形客户端工具如何增强你的开发流程. 在 Linux 下工作的人们对 Git 非常熟悉.一个理所当然的原因是,Git 是我们这个星球上最广为人知也是使用最广泛的版本控制工具.不过大 ...

最新文章

  1. 添加Net4CollectionTypeFactory的原因
  2. 睡眠不足,记忆力还有救吗?Nature:饿着
  3. grep+awk+sort+wc实战
  4. 全球及中国养老护理行业十四五趋势前景与投资动向建议报告2022版
  5. 前端开发-日常开发沉淀之生产环境与开发环境
  6. python中options设置_如何在AngularJS的ng-options中设置value属性?
  7. jQuery常用的方法
  8. 数据量大和高并发解决方法
  9. 解析css之position
  10. ubuntu安装matlab空间不足,Ubuntu安装Matlab方法及命令
  11. java null equals_Java null检查为什么使用==代替.equals()
  12. 数字转字符串的精度问题
  13. MOSS2007匿名调查列表使用分页符导致的错误分析
  14. python文本分割_python实现大文本文件分割
  15. css知识 - 收藏集 - 掘金
  16. EPLAN电气设计入门学习笔记
  17. uniapp 实现高德地图导航
  18. 在html中加入网址,网页超链接怎么做,添加超链接网址的的详细步骤
  19. 3dmax的fbx文件如何导入unity使用?
  20. (ChatGPT)429 You are being rate limited

热门文章

  1. IDEA配置jdk (SDK)
  2. Spring Boot 是什么,有什么用。
  3. chrome 开启 JSONview 方法,让json数据格式化显示
  4. element ui中dialog相关问题
  5. 正则提取的url中的域名以及替换域名的方法 preg_match()和preg_replace()
  6. iOS开发API常用英语名词
  7. C语言经典算法100例-031-判断星期几
  8. 为Java应用程序加上退出事件处理(ShutdownHook)
  9. DataGrid 完全攻略之四 (实现统计)
  10. 李洋疯狂C语言之break和continue的区别