• Home
  • Raw
  • Download

Lines Matching refs:dentries

105 	struct dentry dentries = {  in build_default_directory_structure()  local
113 root_inode = make_directory(0, 1, &dentries, 1); in build_default_directory_structure()
115 *dentries.inode = inode; in build_default_directory_structure()
116 inode_set_permissions(inode, dentries.mode, in build_default_directory_structure()
117 dentries.uid, dentries.gid, dentries.mtime); in build_default_directory_structure()
151 struct dentry *dentries; in build_directory_structure() local
188 dentries = calloc(entries, sizeof(struct dentry)); in build_directory_structure()
189 if (dentries == NULL) in build_directory_structure()
193 dentries[i].filename = strdup(namelist[i]->d_name); in build_directory_structure()
194 if (dentries[i].filename == NULL) in build_directory_structure()
197 asprintf(&dentries[i].path, "%s%s", dir_path, namelist[i]->d_name); in build_directory_structure()
198 asprintf(&dentries[i].full_path, "%s%s", full_path, namelist[i]->d_name); in build_directory_structure()
202 ret = lstat(dentries[i].full_path, &stat); in build_directory_structure()
210 dentries[i].size = stat.st_size; in build_directory_structure()
211 dentries[i].mode = stat.st_mode & (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO); in build_directory_structure()
213 dentries[i].mtime = stat.st_mtime; in build_directory_structure()
215 dentries[i].mtime = fixed_time; in build_directory_structure()
224 fs_config_func(dentries[i].path, dir, target_out_path, &uid, &gid, &mode, &capabilities); in build_directory_structure()
225 dentries[i].mode = mode; in build_directory_structure()
226 dentries[i].uid = uid; in build_directory_structure()
227 dentries[i].gid = gid; in build_directory_structure()
228 dentries[i].capabilities = capabilities; in build_directory_structure()
235 if (selabel_lookup(sehnd, &dentries[i].secon, dentries[i].path, stat.st_mode) < 0) { in build_directory_structure()
236 error("cannot lookup security context for %s", dentries[i].path); in build_directory_structure()
239 if (dentries[i].secon && verbose) in build_directory_structure()
240 printf("Labeling %s as %s\n", dentries[i].path, dentries[i].secon); in build_directory_structure()
245 dentries[i].file_type = EXT4_FT_REG_FILE; in build_directory_structure()
247 dentries[i].file_type = EXT4_FT_DIR; in build_directory_structure()
250 dentries[i].file_type = EXT4_FT_CHRDEV; in build_directory_structure()
252 dentries[i].file_type = EXT4_FT_BLKDEV; in build_directory_structure()
254 dentries[i].file_type = EXT4_FT_FIFO; in build_directory_structure()
256 dentries[i].file_type = EXT4_FT_SOCK; in build_directory_structure()
258 dentries[i].file_type = EXT4_FT_SYMLINK; in build_directory_structure()
259 dentries[i].link = calloc(info.block_size, 1); in build_directory_structure()
260 readlink(dentries[i].full_path, dentries[i].link, info.block_size - 1); in build_directory_structure()
262 error("unknown file type on %s", dentries[i].path); in build_directory_structure()
273 memcpy(tmp + 1, dentries, entries * sizeof(struct dentry)); in build_directory_structure()
274 dentries = tmp; in build_directory_structure()
276 dentries[0].filename = strdup("lost+found"); in build_directory_structure()
277 asprintf(&dentries[0].path, "%slost+found", dir_path); in build_directory_structure()
278 dentries[0].full_path = NULL; in build_directory_structure()
279 dentries[0].size = 0; in build_directory_structure()
280 dentries[0].mode = S_IRWXU; in build_directory_structure()
281 dentries[0].file_type = EXT4_FT_DIR; in build_directory_structure()
282 dentries[0].uid = 0; in build_directory_structure()
283 dentries[0].gid = 0; in build_directory_structure()
285 if (selabel_lookup(sehnd, &dentries[0].secon, dentries[0].path, dentries[0].mode) < 0) in build_directory_structure()
286 error("cannot lookup security context for %s", dentries[0].path); in build_directory_structure()
292 inode = make_directory(dir_inode, entries, dentries, dirs); in build_directory_structure()
295 if (dentries[i].file_type == EXT4_FT_REG_FILE) { in build_directory_structure()
296 entry_inode = make_file(dentries[i].full_path, dentries[i].size); in build_directory_structure()
297 } else if (dentries[i].file_type == EXT4_FT_DIR) { in build_directory_structure()
300 if (dentries[i].full_path) { in build_directory_structure()
301 ret = asprintf(&subdir_full_path, "%s/", dentries[i].full_path); in build_directory_structure()
305 ret = asprintf(&subdir_dir_path, "%s/", dentries[i].path); in build_directory_structure()
312 } else if (dentries[i].file_type == EXT4_FT_SYMLINK) { in build_directory_structure()
313 entry_inode = make_link(dentries[i].link); in build_directory_structure()
315 error("unknown file type on %s", dentries[i].path); in build_directory_structure()
318 *dentries[i].inode = entry_inode; in build_directory_structure()
320 ret = inode_set_permissions(entry_inode, dentries[i].mode, in build_directory_structure()
321 dentries[i].uid, dentries[i].gid, in build_directory_structure()
322 dentries[i].mtime); in build_directory_structure()
324 error("failed to set permissions on %s\n", dentries[i].path); in build_directory_structure()
333 ret = inode_set_selinux(entry_inode, dentries[i].secon); in build_directory_structure()
335 error("failed to set SELinux context on %s\n", dentries[i].path); in build_directory_structure()
336 ret = inode_set_capabilities(entry_inode, dentries[i].capabilities); in build_directory_structure()
338 error("failed to set capability on %s\n", dentries[i].path); in build_directory_structure()
340 free(dentries[i].path); in build_directory_structure()
341 free(dentries[i].full_path); in build_directory_structure()
342 free(dentries[i].link); in build_directory_structure()
343 free((void *)dentries[i].filename); in build_directory_structure()
344 free(dentries[i].secon); in build_directory_structure()
347 free(dentries); in build_directory_structure()