Changes in uspace/srv/fs/mfs/mfs_dentry.c [c2e50d7:7a46bfe] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/fs/mfs/mfs_dentry.c
rc2e50d7 r7a46bfe 44 44 int 45 45 mfs_read_dentry(struct mfs_node *mnode, 46 struct mfs_dentry_info *d_info, unsigned index)46 struct mfs_dentry_info *d_info, unsigned index) 47 47 { 48 48 const struct mfs_instance *inst = mnode->instance; … … 57 57 58 58 if (block == 0) { 59 /* End of the dentries list*/59 /*End of the dentries list*/ 60 60 r = EOK; 61 61 goto out_err; … … 76 76 d_info->d_inum = conv32(sbi->native, d3->d_inum); 77 77 memcpy(d_info->d_name, d3->d_name, MFS3_MAX_NAME_LEN); 78 d_info->d_name[MFS3_MAX_NAME_LEN] = 0;79 78 } else { 80 79 const int namelen = longnames ? MFS_L_MAX_NAME_LEN : 81 MFS_MAX_NAME_LEN;80 MFS_MAX_NAME_LEN; 82 81 83 82 struct mfs_dentry *d; 84 83 85 84 d = b->data + dentry_off * (longnames ? MFSL_DIRSIZE : 86 MFS_DIRSIZE);85 MFS_DIRSIZE); 87 86 d_info->d_inum = conv16(sbi->native, d->d_inum); 88 87 memcpy(d_info->d_name, d->d_name, namelen); 89 d_info->d_name[namelen] = 0;90 88 } 91 89 … … 101 99 /**Write a directory entry on disk. 102 100 * 103 * @param d_info 104 * 105 * @return 101 * @param d_info Pointer to the directory entry structure to write on disk. 102 * 103 * @return EOK on success or a negative error code. 106 104 */ 107 105 int … … 168 166 return ENAMETOOLONG; 169 167 170 /* Search the directory entry to be removed*/168 /*Search the directory entry to be removed*/ 171 169 unsigned i; 172 170 for (i = 0; i < mnode->ino_i->i_size / sbi->dirsize ; ++i) { … … 178 176 179 177 if (name_len == d_name_len && 180 !bcmp(d_info.d_name, d_name, name_len)) { 181 178 !bcmp(d_info.d_name, d_name, name_len)) { 182 179 d_info.d_inum = 0; 183 180 r = mfs_write_dentry(&d_info); … … 198 195 */ 199 196 int 200 mfs_insert_dentry(struct mfs_node *mnode, const char *d_name, 201 fs_index_t d_inum) 197 mfs_insert_dentry(struct mfs_node *mnode, const char *d_name, fs_index_t d_inum) 202 198 { 203 199 int r; … … 211 207 return ENAMETOOLONG; 212 208 213 /* Search for an empty dentry*/209 /*Search for an empty dentry*/ 214 210 unsigned i; 215 211 for (i = 0; i < mnode->ino_i->i_size / sbi->dirsize; ++i) { … … 219 215 220 216 if (d_info.d_inum == 0) { 221 /* This entry is not used*/217 /*This entry is not used*/ 222 218 empty_dentry_found = true; 223 219 break; … … 233 229 234 230 if (b == 0) { 235 /* Increase the inode size*/231 /*Increase the inode size*/ 236 232 237 233 uint32_t dummy; … … 253 249 d_info.d_inum = d_inum; 254 250 memcpy(d_info.d_name, d_name, name_len); 255 if (name_len < sbi->max_name_len) 256 d_info.d_name[name_len] = 0; 251 d_info.d_name[name_len] = 0; 257 252 258 253 r = mfs_write_dentry(&d_info);
Note:
See TracChangeset
for help on using the changeset viewer.