User Details
- User Since
- Mar 27 2017, 5:46 PM (401 w, 2 d)
Aug 31 2023
Jul 26 2023
Close because of:
https://reviews.freebsd.org/D35544
Close because of:
https://reviews.freebsd.org/D35544
May 21 2023
May 10 2023
Mar 20 2023
Mar 18 2023
Mar 12 2023
Ok, let's ignore mangled dir entry on rename.
The situation will looks like:
root@fb:/mnt # mkdir -p DIR0/dirbad2 DIR1 root@fb:/mnt # mv ./DIR0/dirbad2 ./DIR1 root@fb:/mnt # tree . ├── DIR0 ├── DIR1 │ └── dirbad2 └── lost+found
Mar 10 2023
I thought about this patch little bit more and found, that it is not so simple to not panic in all places.
First place:
/* * Check that directory length properly reflects presence * of this entry. */ if (entryoffsetinblock + EXT2_DIR_REC_LEN(ep->e2d_namlen) > dp->i_size) { ext2_dirbad(dp, i_offset, "i_size too small"); brelse(bp); return (EIO); } brelse(bp);
It is possible do not panic in this case, because it is just incorrect i_size and could be simple fixed by fsck.
Feb 25 2023
Ok, in case of ext2fs, we not need printf and leave only dtrace probe with error reporting.
I hope user will smart enough to unmount and run fsck, if will get errors on directory listing.
Feb 18 2023
Ok, let's remove ext2_check_root_direntry() completely.
Feb 11 2023
Feb 4 2023
The similar test for removing will pass (tests/rmdir/11.t).
Let's consider the test explanation from pjdfstest comment [https://github.com/pjd/pjdfstest/blob/master/tests/rename/09.t#L121]:
# User owns the source sticky directory, but doesn't own the source file. # This fails when changing parent directory, because this will modify # source directory inode (the .. link in it), but we can still rename it # without changing its parent directory.
So, it mean, we cannot modify renamed inode, but can remove it.
Let's add some graphics:
sticky directory child directory owned by user (ino 100500) not owned by user (ino 100501) | | \|/ \|/ directory entries: directory entries: - "." (ino 100500) - "." (ino 100501) - ".." (ino XXXXXX) <----- - ".." (ino 100500) <- cannot be modified ... ... - "child" (ino 100501) -----> ...
Jan 29 2023
Jan 22 2023
Changes:
- Implement extended attributes max size variable as mount option instead of sysctl, the value could be changed during remount (MNT_UPDATE)
- Misc refactoring:
- Remove tmpfs_extattr_valid_attrname() function to avoid double strlen call.
- The if expressions fixes.
- Decrease number of blank lines.
Jan 14 2023
Add links to testcases to source code.
Dec 30 2021
Dec 10 2021
Nov 28 2021
Nov 19 2021
This version of e2fs_first_dblock check will fail on 1k block size. The
fs->e2fs->e2fs_bcount >= 1024
is always true.
Nov 18 2021
I am working on more complex extents verification logic, but let it to be committed.
The first data block value check should be more complex. See s_first_data_block superblock field here:
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
Nov 8 2021
I think it will be better to commit another crc16 implementation and then apply 'code duplication fix' by moving function used in both places to independent header. The reason is, that I cannot confirm that it is 'generic' and 'right' crc16 implementation. I can only confirm, that this implementation is suitable for ext2fs.
May 8 2021
May 7 2021
Apr 23 2021
Fix printf message as requested
Make functions inline
Fix and expression order.
Apr 22 2021
Feb 17 2021
Looks good from ext2fs side.
@kib, you mentioned in SUMMARY:
"ext2fs change to reset clusterw on truncation should be a bug fix."
Jul 17 2020
Thank you for fix.
Jun 12 2020
May 17 2020
May 4 2020
Apr 15 2020
As I remember, the task appeared to be more difficult than it was expected by me. More changes appeared to be required to implement, than it was expected from start.
Mar 3 2020
Feb 18 2020
Feb 10 2020
Jan 19 2020
I am not sure that dinode and superblock conversion will be enough, as I checked on linux side, the group descriptors should be converted too, possible same for bitmaps.
From https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
"All fields in ext4 are written to disk in little-endian order"