Lines Matching full:inode
2 * dump.c --- dump the contents of an inode out to a file
67 static void fix_perms(const char *cmd, const struct ext2_inode *inode,
74 i = fchmod(fd, mode_xlate(inode->i_mode));
76 i = chmod(name, mode_xlate(inode->i_mode));
81 i = chown(name, inode->i_uid, inode->i_gid);
84 i = fchown(fd, inode->i_uid, inode->i_gid);
86 i = chown(name, inode->i_uid, inode->i_gid);
94 ut.actime = inode->i_atime;
95 ut.modtime = inode->i_mtime;
104 struct ext2_inode inode;
110 if (debugfs_read_inode(ino, &inode, cmdname))
135 fix_perms("dump_file", &inode, fd, outname);
144 ext2_ino_t inode;
172 inode = string_to_inode(in_fn);
173 if (!inode)
183 dump_file(argv[0], inode, fd, preserve, out_fn);
188 static void rdump_symlink(ext2_ino_t ino, struct ext2_inode *inode,
195 buf = malloc(inode->i_size + 1);
203 if (inode->i_blocks == 0)
204 strcpy(buf, (char *) inode->i_block);
206 unsigned bytes = inode->i_size;
225 buf[inode->i_size] = 0;
242 static void rdump_inode(ext2_ino_t ino, struct ext2_inode *inode,
256 if (LINUX_S_ISLNK(inode->i_mode))
257 rdump_symlink(ino, inode, fullname);
258 else if (LINUX_S_ISREG(inode->i_mode)) {
267 else if (LINUX_S_ISDIR(inode->i_mode) && strcmp(name, ".") && strcmp(name, "..")) {
283 fix_perms("rdump", inode, -1, fullname);
299 struct ext2_inode inode;
306 if (debugfs_read_inode(dirent->inode, &inode, name))
309 rdump_inode(dirent->inode, &inode, name, dumproot);
317 struct ext2_inode inode;
341 if (debugfs_read_inode(ino, &inode, argv[1]))
350 rdump_inode(ino, &inode, p, argv[2]);
355 ext2_ino_t inode;
357 if (common_inode_args_process(argc, argv, &inode, 0))
362 dump_file(argv[0], inode, 1, 0, argv[2]);