|
Lines 1074-1083
Link Here
|
| 1074 |
ext2_dec_nlink(dp); |
1074 |
ext2_dec_nlink(dp); |
| 1075 |
dp->i_flag |= IN_CHANGE; |
1075 |
dp->i_flag |= IN_CHANGE; |
| 1076 |
dirbuf = malloc(dp->i_e2fs->e2fs_bsize, M_TEMP, M_WAITOK | M_ZERO); |
1076 |
dirbuf = malloc(dp->i_e2fs->e2fs_bsize, M_TEMP, M_WAITOK | M_ZERO); |
| 1077 |
if (!dirbuf) { |
|
|
| 1078 |
error = ENOMEM; |
| 1079 |
goto bad; |
| 1080 |
} |
| 1081 |
error = vn_rdwr(UIO_READ, fvp, (caddr_t)dirbuf, |
1077 |
error = vn_rdwr(UIO_READ, fvp, (caddr_t)dirbuf, |
| 1082 |
ip->i_e2fs->e2fs_bsize, (off_t)0, |
1078 |
ip->i_e2fs->e2fs_bsize, (off_t)0, |
| 1083 |
UIO_SYSSPACE, IO_NODELOCKED | IO_NOMACCHECK, |
1079 |
UIO_SYSSPACE, IO_NODELOCKED | IO_NOMACCHECK, |
|
Lines 1387-1398
Link Here
|
| 1387 |
#define DIRBLKSIZ VTOI(dvp)->i_e2fs->e2fs_bsize |
1383 |
#define DIRBLKSIZ VTOI(dvp)->i_e2fs->e2fs_bsize |
| 1388 |
dirtemplate.dotdot_reclen = DIRBLKSIZ - 12; |
1384 |
dirtemplate.dotdot_reclen = DIRBLKSIZ - 12; |
| 1389 |
buf = malloc(DIRBLKSIZ, M_TEMP, M_WAITOK | M_ZERO); |
1385 |
buf = malloc(DIRBLKSIZ, M_TEMP, M_WAITOK | M_ZERO); |
| 1390 |
if (!buf) { |
|
|
| 1391 |
error = ENOMEM; |
| 1392 |
ext2_dec_nlink(dp); |
| 1393 |
dp->i_flag |= IN_CHANGE; |
| 1394 |
goto bad; |
| 1395 |
} |
| 1396 |
if (EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_METADATA_CKSUM)) { |
1386 |
if (EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_METADATA_CKSUM)) { |
| 1397 |
dirtemplate.dotdot_reclen -= sizeof(struct ext2fs_direct_tail); |
1387 |
dirtemplate.dotdot_reclen -= sizeof(struct ext2fs_direct_tail); |
| 1398 |
ext2_init_dirent_tail(EXT2_DIRENT_TAIL(buf, DIRBLKSIZ)); |
1388 |
ext2_init_dirent_tail(EXT2_DIRENT_TAIL(buf, DIRBLKSIZ)); |