监控程序所在的tmpfs内存虚拟文件系统,由于一个空目录无法删除,直接影响监控程序的自动处理流程,为解决这一问题,分几步来查找:
1、strace rm -rf testdir , 发现在rmdir系统调用处,返回失败(显示目录非空);
2、在shmem.c中查看系统调用:
static const struct inode_operations shmem_dir_inode_operations = {
2460 #ifdef CONFIG_TMPFS
2461 .create = shmem_create,
2462 .lookup = simple_lookup,
2463 .link = shmem_link,
2464 .unlink = shmem_unlink,
2465 .symlink = shmem_symlink,
2466 .mkdir = shmem_mkdir,
2467 .rmdir = shmem_rmdir,
3、找到目录的系统调用实现函数:
1898 static int shmem_rmdir(struct inode *dir, struct dentry *dentry)
1899 {
1900 if (!simple_empty(dentry))
1901 return -ENOTEMPTY;