Lines Matching refs:i
13 void hpfs_init_inode(struct inode *i) in hpfs_init_inode() argument
15 struct super_block *sb = i->i_sb; in hpfs_init_inode()
16 struct hpfs_inode_info *hpfs_inode = hpfs_i(i); in hpfs_init_inode()
18 i->i_uid = hpfs_sb(sb)->sb_uid; in hpfs_init_inode()
19 i->i_gid = hpfs_sb(sb)->sb_gid; in hpfs_init_inode()
20 i->i_mode = hpfs_sb(sb)->sb_mode; in hpfs_init_inode()
21 i->i_size = -1; in hpfs_init_inode()
22 i->i_blocks = -1; in hpfs_init_inode()
38 i->i_ctime.tv_sec = i->i_ctime.tv_nsec = 0; in hpfs_init_inode()
39 i->i_mtime.tv_sec = i->i_mtime.tv_nsec = 0; in hpfs_init_inode()
40 i->i_atime.tv_sec = i->i_atime.tv_nsec = 0; in hpfs_init_inode()
43 void hpfs_read_inode(struct inode *i) in hpfs_read_inode() argument
47 struct super_block *sb = i->i_sb; in hpfs_read_inode()
48 struct hpfs_inode_info *hpfs_inode = hpfs_i(i); in hpfs_read_inode()
52 if (!(fnode = hpfs_map_fnode(sb, i->i_ino, &bh))) { in hpfs_read_inode()
58 make_bad_inode(i); in hpfs_read_inode()
61 if (hpfs_sb(i->i_sb)->sb_eas) { in hpfs_read_inode()
62 if ((ea = hpfs_get_ea(i->i_sb, fnode, "UID", &ea_size))) { in hpfs_read_inode()
64 i_uid_write(i, le16_to_cpu(*(__le16*)ea)); in hpfs_read_inode()
69 if ((ea = hpfs_get_ea(i->i_sb, fnode, "GID", &ea_size))) { in hpfs_read_inode()
71 i_gid_write(i, le16_to_cpu(*(__le16*)ea)); in hpfs_read_inode()
76 if ((ea = hpfs_get_ea(i->i_sb, fnode, "SYMLINK", &ea_size))) { in hpfs_read_inode()
78 i->i_mode = S_IFLNK | 0777; in hpfs_read_inode()
79 i->i_op = &page_symlink_inode_operations; in hpfs_read_inode()
80 inode_nohighmem(i); in hpfs_read_inode()
81 i->i_data.a_ops = &hpfs_symlink_aops; in hpfs_read_inode()
82 set_nlink(i, 1); in hpfs_read_inode()
83 i->i_size = ea_size; in hpfs_read_inode()
84 i->i_blocks = 1; in hpfs_read_inode()
88 if ((ea = hpfs_get_ea(i->i_sb, fnode, "MODE", &ea_size))) { in hpfs_read_inode()
96 i->i_mode = mode; in hpfs_read_inode()
98 if ((ea = hpfs_get_ea(i->i_sb, fnode, "DEV", &ea_size))) { in hpfs_read_inode()
106 set_nlink(i, 1); in hpfs_read_inode()
107 i->i_size = 0; in hpfs_read_inode()
108 i->i_blocks = 1; in hpfs_read_inode()
109 init_special_inode(i, mode, in hpfs_read_inode()
117 i->i_mode |= S_IFDIR; in hpfs_read_inode()
118 i->i_op = &hpfs_dir_iops; in hpfs_read_inode()
119 i->i_fop = &hpfs_dir_ops; in hpfs_read_inode()
127 hpfs_count_dnodes(i->i_sb, hpfs_inode->i_dno, &n_dnodes, &n_subdirs, NULL); in hpfs_read_inode()
128 i->i_blocks = 4 * n_dnodes; in hpfs_read_inode()
129 i->i_size = 2048 * n_dnodes; in hpfs_read_inode()
130 set_nlink(i, 2 + n_subdirs); in hpfs_read_inode()
132 i->i_mode |= S_IFREG; in hpfs_read_inode()
133 if (!hpfs_inode->i_ea_mode) i->i_mode &= ~0111; in hpfs_read_inode()
134 i->i_op = &hpfs_file_iops; in hpfs_read_inode()
135 i->i_fop = &hpfs_file_ops; in hpfs_read_inode()
136 set_nlink(i, 1); in hpfs_read_inode()
137 i->i_size = le32_to_cpu(fnode->file_size); in hpfs_read_inode()
138 i->i_blocks = ((i->i_size + 511) >> 9) + 1; in hpfs_read_inode()
139 i->i_data.a_ops = &hpfs_aops; in hpfs_read_inode()
140 hpfs_i(i)->mmu_private = i->i_size; in hpfs_read_inode()
145 static void hpfs_write_inode_ea(struct inode *i, struct fnode *fnode) in hpfs_write_inode_ea() argument
147 struct hpfs_inode_info *hpfs_inode = hpfs_i(i); in hpfs_write_inode_ea()
152 } else*/ if (hpfs_sb(i->i_sb)->sb_eas >= 2) { in hpfs_write_inode_ea()
154 if (!uid_eq(i->i_uid, hpfs_sb(i->i_sb)->sb_uid) || hpfs_inode->i_ea_uid) { in hpfs_write_inode_ea()
155 ea = cpu_to_le32(i_uid_read(i)); in hpfs_write_inode_ea()
156 hpfs_set_ea(i, fnode, "UID", (char*)&ea, 2); in hpfs_write_inode_ea()
159 if (!gid_eq(i->i_gid, hpfs_sb(i->i_sb)->sb_gid) || hpfs_inode->i_ea_gid) { in hpfs_write_inode_ea()
160 ea = cpu_to_le32(i_gid_read(i)); in hpfs_write_inode_ea()
161 hpfs_set_ea(i, fnode, "GID", (char *)&ea, 2); in hpfs_write_inode_ea()
164 if (!S_ISLNK(i->i_mode)) in hpfs_write_inode_ea()
165 if ((i->i_mode != ((hpfs_sb(i->i_sb)->sb_mode & ~(S_ISDIR(i->i_mode) ? 0 : 0111)) in hpfs_write_inode_ea()
166 | (S_ISDIR(i->i_mode) ? S_IFDIR : S_IFREG)) in hpfs_write_inode_ea()
167 && i->i_mode != ((hpfs_sb(i->i_sb)->sb_mode & ~(S_ISDIR(i->i_mode) ? 0222 : 0333)) in hpfs_write_inode_ea()
168 | (S_ISDIR(i->i_mode) ? S_IFDIR : S_IFREG))) || hpfs_inode->i_ea_mode) { in hpfs_write_inode_ea()
169 ea = cpu_to_le32(i->i_mode); in hpfs_write_inode_ea()
171 hpfs_set_ea(i, fnode, "MODE", (char *)&ea, 2); in hpfs_write_inode_ea()
174 if (S_ISBLK(i->i_mode) || S_ISCHR(i->i_mode)) { in hpfs_write_inode_ea()
175 ea = cpu_to_le32(new_encode_dev(i->i_rdev)); in hpfs_write_inode_ea()
176 hpfs_set_ea(i, fnode, "DEV", (char *)&ea, 4); in hpfs_write_inode_ea()
181 void hpfs_write_inode(struct inode *i) in hpfs_write_inode() argument
183 struct hpfs_inode_info *hpfs_inode = hpfs_i(i); in hpfs_write_inode()
185 if (i->i_ino == hpfs_sb(i->i_sb)->sb_root) return; in hpfs_write_inode()
186 if (hpfs_inode->i_rddir_off && !atomic_read(&i->i_count)) { in hpfs_write_inode()
192 if (!i->i_nlink) { in hpfs_write_inode()
195 parent = iget_locked(i->i_sb, hpfs_inode->i_parent_dir); in hpfs_write_inode()
203 hpfs_write_inode_nolock(i); in hpfs_write_inode()
208 void hpfs_write_inode_nolock(struct inode *i) in hpfs_write_inode_nolock() argument
210 struct hpfs_inode_info *hpfs_inode = hpfs_i(i); in hpfs_write_inode_nolock()
215 if (i->i_ino == hpfs_sb(i->i_sb)->sb_root) return; in hpfs_write_inode_nolock()
216 if (!(fnode = hpfs_map_fnode(i->i_sb, i->i_ino, &bh))) return; in hpfs_write_inode_nolock()
217 if (i->i_ino != hpfs_sb(i->i_sb)->sb_root && i->i_nlink) { in hpfs_write_inode_nolock()
218 if (!(de = map_fnode_dirent(i->i_sb, i->i_ino, fnode, &qbh))) { in hpfs_write_inode_nolock()
223 if (S_ISREG(i->i_mode)) { in hpfs_write_inode_nolock()
224 fnode->file_size = cpu_to_le32(i->i_size); in hpfs_write_inode_nolock()
225 if (de) de->file_size = cpu_to_le32(i->i_size); in hpfs_write_inode_nolock()
226 } else if (S_ISDIR(i->i_mode)) { in hpfs_write_inode_nolock()
230 hpfs_write_inode_ea(i, fnode); in hpfs_write_inode_nolock()
232 de->write_date = cpu_to_le32(gmt_to_local(i->i_sb, i->i_mtime.tv_sec)); in hpfs_write_inode_nolock()
233 de->read_date = cpu_to_le32(gmt_to_local(i->i_sb, i->i_atime.tv_sec)); in hpfs_write_inode_nolock()
234 de->creation_date = cpu_to_le32(gmt_to_local(i->i_sb, i->i_ctime.tv_sec)); in hpfs_write_inode_nolock()
235 de->read_only = !(i->i_mode & 0222); in hpfs_write_inode_nolock()
240 if (S_ISDIR(i->i_mode)) { in hpfs_write_inode_nolock()
241 if ((de = map_dirent(i, hpfs_inode->i_dno, "\001\001", 2, NULL, &qbh))) { in hpfs_write_inode_nolock()
242 de->write_date = cpu_to_le32(gmt_to_local(i->i_sb, i->i_mtime.tv_sec)); in hpfs_write_inode_nolock()
243 de->read_date = cpu_to_le32(gmt_to_local(i->i_sb, i->i_atime.tv_sec)); in hpfs_write_inode_nolock()
244 de->creation_date = cpu_to_le32(gmt_to_local(i->i_sb, i->i_ctime.tv_sec)); in hpfs_write_inode_nolock()
245 de->read_only = !(i->i_mode & 0222); in hpfs_write_inode_nolock()
251 hpfs_error(i->i_sb, in hpfs_write_inode_nolock()
253 (unsigned long)i->i_ino); in hpfs_write_inode_nolock()