Page MenuHomeFreeBSD

fsu (Fedor Uporov)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 27 2017, 5:46 PM (176 w, 3 d)

Recent Activity

Fri, Jul 17

fsu accepted D25707: ext2fs: Stop checking for failures from malloc(M_WAITOK)..

Thank you for fix.

Fri, Jul 17, 4:44 PM

Jun 12 2020

fsu committed rS362098: MFC r361135:.
MFC r361135:
Jun 12 2020, 1:55 PM
fsu committed rS362097: MFC r361134:.
MFC r361134:
Jun 12 2020, 1:54 PM
fsu committed rS362096: MFC r361133:.
MFC r361133:
Jun 12 2020, 1:52 PM

May 17 2020

fsu committed rS361136: Add BE architectures support..
Add BE architectures support.
May 17 2020, 2:53 PM
fsu closed D24685: ext2fs: initial support for byteswapping (was https://reviews.freebsd.org/D23259).
May 17 2020, 2:53 PM · PowerPC
fsu committed rS361135: Restrict the max runp and runb return values in case of extents mapping..
Restrict the max runp and runb return values in case of extents mapping.
May 17 2020, 2:11 PM
fsu committed rS361134: Fix incorrect inode link count check in case of rename..
Fix incorrect inode link count check in case of rename.
May 17 2020, 2:03 PM
fsu committed rS361133: Add inode bitmap tail initialization..
Add inode bitmap tail initialization.
May 17 2020, 2:01 PM

May 4 2020

fsu added a comment to D23259: ext2fs: initial support for byteswapping..
In D23259#543519, @pfg wrote:
In D23259#543516, @fsu wrote:
In D23259#543509, @pfg wrote:

Sorry I meant to approve this:
https://reviews.freebsd.org/D24685

(fsu should have comandeered this one instead of opening a new one)

I did not managed with new diff uploading, diff did not want to attach to this revision.
Seems like, I can attach diffs only to revisions, which were opened by me.
Please correct me if I am wrong or lose something in the Phabricator UI.

You had to comandeer it in the Action box. You can't do it anymore because it is closed but I know because other people have comandeered my WIP changes ;).

No problem about the new revision though ... Good Job !

May 4 2020, 4:39 PM
fsu added a comment to D23259: ext2fs: initial support for byteswapping..
In D23259#543509, @pfg wrote:

Sorry I meant to approve this:
https://reviews.freebsd.org/D24685

(fsu should have comandeered this one instead of opening a new one)

May 4 2020, 4:19 PM
fsu requested review of D24685: ext2fs: initial support for byteswapping (was https://reviews.freebsd.org/D23259).
May 4 2020, 1:41 PM · PowerPC

Apr 15 2020

fsu added a comment to D13209: linuxulator: Add user xattrs support for i386 and amd64 platforms..
In D13209#537208, @pfg wrote:

Ping? What's the status of this?

FWIW, I recall kib had objections and fsu needed clarifications but he never got them.
There was never urgency as there is no known program using this code so the issue has been dormant for a long time.

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.

Apr 15 2020, 2:15 PM

Mar 3 2020

fsu committed rS358578: MFC r358073:.
MFC r358073:
Mar 3 2020, 2:59 PM

Feb 18 2020

fsu committed rS358073: Add a EXT2FS-specific implementation for lseek(SEEK_DATA)..
Add a EXT2FS-specific implementation for lseek(SEEK_DATA).
Feb 18 2020, 4:40 PM
fsu closed D23605: Add a EXT2FS-specific implementation for lseek(SEEK_DATA)..
Feb 18 2020, 4:40 PM

Feb 10 2020

fsu created D23605: Add a EXT2FS-specific implementation for lseek(SEEK_DATA)..
Feb 10 2020, 5:18 PM

Jan 19 2020

fsu added a comment to D23259: ext2fs: initial support for byteswapping..

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"

Jan 19 2020, 1:20 PM

Jul 27 2019

fsu committed rS350385: MFC r349800,r349801,r349802:.
MFC r349800,r349801,r349802:
Jul 27 2019, 7:29 PM
fsu committed rS350384: MFC r349800,r349801:.
MFC r349800,r349801:
Jul 27 2019, 7:29 PM

Jul 7 2019

fsu committed rS349802: Add additional check for 'blocks per group' and 'fragments per group'….
Add additional check for 'blocks per group' and 'fragments per group'…
Jul 7 2019, 8:58 AM
fsu committed rS349801: Remove ufs fragments logic..
Remove ufs fragments logic.
Jul 7 2019, 8:56 AM
fsu committed rS349800: Remove unneeded mount point unlock call..
Remove unneeded mount point unlock call.
Jul 7 2019, 8:54 AM

Jun 10 2019

fsu accepted D20571: Add a sentence about full ext4 read/write support the filesystems chapter in the handbook.

I am not sure about "filesystem has full read and write support for ext4" because there some ext4 features, that uses rarely and we does not support it.
But may be do not dig into the details in this place.

Jun 10 2019, 2:25 PM

Apr 30 2019

fsu committed rS346955: MFC r346267, 346269:.
MFC r346267, 346269:
Apr 30 2019, 9:10 AM

Apr 27 2019

fsu abandoned D13487: fuse extattrs: fix issue when neither uio nor size were not passed to VOP_*..

Indeed, this seems to have been abandoned and recreated as D13528, then committed as r338152. @fsu is there any reason not to close this review?

Apr 27 2019, 4:17 PM

Apr 16 2019

fsu committed rS346269: ext2fs: Initial version of DTrace support..
ext2fs: Initial version of DTrace support.
Apr 16 2019, 11:37 AM
fsu committed rS346267: ext2fs: Initial version of DTrace support..
ext2fs: Initial version of DTrace support.
Apr 16 2019, 11:20 AM
fsu closed D19848: ext2fs: Dtrace support..
Apr 16 2019, 11:20 AM

Apr 12 2019

fsu added a comment to D19848: ext2fs: Dtrace support..
In D19848#426959, @gnn wrote:

Some general comments.

  1. Can you move all the DEFINE statements to the top of the file rather than interspresing them throughout? I know you're defining them near use but the general way we have coded these is to put the DECLARES and DEFINES at the top of the files.

Ok, I will add this change before landing.

  1. The name "trace" is going to be a bit confusing to users as they already think they're tracing the system. You could drop the "trace" altogether and see if that makes sense.

I prefer to leave it as is to keep consistency with fusefs dtrace probes naming. See: https://reviews.freebsd.org/D19667

Otherwise this looks like a great addition, and thank you for doing it.

Apr 12 2019, 7:03 AM

Apr 10 2019

fsu added a comment to D19848: ext2fs: Dtrace support..
In D19848#426730, @pfg wrote:

I still hope to hear from the DTrace experts, but I like this very much. Thanks!

Apr 10 2019, 6:12 PM

Apr 9 2019

fsu added inline comments to D19848: ext2fs: Dtrace support..
Apr 9 2019, 7:39 AM

Apr 8 2019

fsu retitled D19848: ext2fs: Dtrace support. from ext2fs: Drace support. to ext2fs: Dtrace support..
Apr 8 2019, 5:20 PM
fsu created D19848: ext2fs: Dtrace support..
Apr 8 2019, 5:19 PM

Mar 29 2019

fsu added a comment to D19599: Add a UFS-specific implementation for lseek(SEEK_DATA)..
In D19599#423359, @kib wrote:
In D19599#423338, @fsu wrote:
In D19599#423330, @fsu wrote:

Hi, Mark.

Thanks a lot for adding me to review.
But could you please provide some information, how it is possible to test FIOSEEKDATA/FIOSEEKHOLE from user-space side.
I mean, did you write some user-space code to test it or some unit-tests exist somewhere?

I did not modify SEEK_HOLE. I tested SEEK_DATA with a program that truncates an empty file to a random length, and then calls SEEK_DATA on the file with a random starting offset, and verifies that the value returned is the starting offset of the last LBN in the file, since UFS seems to always put a data block at the end of a sparse file, even if the inode size % block size is 0. I also ran a private instance of syzkaller on the patch and verified that it exercises most of the branches in the new function (currently it cannot trigger errors from readindir(), for example).
I started writing some tests, but discarded them. It is hard to write useful tests since the implementation of file holes is highly filesystem-dependent, and even for UFS there is no blessed procedure for creating holes in a file AFAIK.

What you described above *is* the correct way to create holes on UFS. Seek after the EOF and write single byte, then all the content between old EOF and new block containing that byte is hole. The only detail is that if the byte is in direct block, then you might get fragment at the end, instead of the full block (does not matter for the tests).

So any tests for this will be coupled to filesystem internals.

Also, it is interesting how faster it became.

I did not attempt to compare them. The old algorithm is O(size of file) and the new one is effectively constant-time as long as the inode does not reference indirect blocks that are full of zeroes. With a sufficiently large sparse file the old algorithm will not complete in any reasonable amount of time.

I expected that some user-space tests exist, which could be possible to apply to ext2fs to ensure, that the implementation is compatible with ufs.

https://gist.github.com/5319d0d7d52e0f9199ddf2b5a75a6438
https://gist.github.com/a4f9c80a7699151e7f2e5ba051740aa7
This is what I used for vn_bmap_seekhole() implementation.

Ok, thank you. This is, what I tried to find, to avoid implement it from scratch.

But ok, I will try to find something and check it on ufs too.

Thanks.

Mar 29 2019, 9:15 PM
fsu added a comment to D19599: Add a UFS-specific implementation for lseek(SEEK_DATA)..
In D19599#423330, @fsu wrote:

Hi, Mark.

Thanks a lot for adding me to review.
But could you please provide some information, how it is possible to test FIOSEEKDATA/FIOSEEKHOLE from user-space side.
I mean, did you write some user-space code to test it or some unit-tests exist somewhere?

I did not modify SEEK_HOLE. I tested SEEK_DATA with a program that truncates an empty file to a random length, and then calls SEEK_DATA on the file with a random starting offset, and verifies that the value returned is the starting offset of the last LBN in the file, since UFS seems to always put a data block at the end of a sparse file, even if the inode size % block size is 0. I also ran a private instance of syzkaller on the patch and verified that it exercises most of the branches in the new function (currently it cannot trigger errors from readindir(), for example).
I started writing some tests, but discarded them. It is hard to write useful tests since the implementation of file holes is highly filesystem-dependent, and even for UFS there is no blessed procedure for creating holes in a file AFAIK. So any tests for this will be coupled to filesystem internals.

Also, it is interesting how faster it became.

I did not attempt to compare them. The old algorithm is O(size of file) and the new one is effectively constant-time as long as the inode does not reference indirect blocks that are full of zeroes. With a sufficiently large sparse file the old algorithm will not complete in any reasonable amount of time.

Mar 29 2019, 3:49 PM
fsu added a comment to D19599: Add a UFS-specific implementation for lseek(SEEK_DATA)..

Thanks a lot for adding me to review.
But could you please provide some information, how it is possible to test FIOSEEKDATA/FIOSEEKHOLE from user-space side.
I mean, did you write some user-space code to test it or some unit-tests exist somewhere?

Mar 29 2019, 3:05 PM

Mar 18 2019

fsu committed rS345272: MFC: r344757:.
MFC: r344757:
Mar 18 2019, 12:34 PM
fsu committed rS345271: MFC: r344752:.
MFC: r344752:
Mar 18 2019, 12:31 PM
fsu committed rS345270: MFC: r344754:.
MFC: r344754:
Mar 18 2019, 12:26 PM
fsu committed rS345268: MFC: r344756, r345179:.
MFC: r344756, r345179:
Mar 18 2019, 12:22 PM
fsu committed rS345267: MFC: r344755:.
MFC: r344755:
Mar 18 2019, 12:16 PM
fsu committed rS345266: MFC: r344753:.
MFC: r344753:
Mar 18 2019, 12:09 PM
fsu committed rS345265: MFC r344751:.
MFC r344751:
Mar 18 2019, 12:04 PM

Mar 15 2019

fsu committed rS345179: Remove unneeded mount point unlock function calls..
Remove unneeded mount point unlock function calls.
Mar 15 2019, 11:49 AM

Mar 4 2019

fsu committed rS344757: Fix double free in case of mount error..
Fix double free in case of mount error.
Mar 4 2019, 11:34 AM
fsu closed D19385: Fix double free in case of mount error..
Mar 4 2019, 11:34 AM
fsu committed rS344756: Do not read the on-disk inode in case of vnode allocation..
Do not read the on-disk inode in case of vnode allocation.
Mar 4 2019, 11:27 AM
fsu closed D19327: Do not read the on-disk inode in case of vnode allocation..
Mar 4 2019, 11:27 AM
fsu committed rS344755: Fix integer overflow possibility..
Fix integer overflow possibility.
Mar 4 2019, 11:19 AM
fsu closed D19326: Fix integer overflow possibility..
Mar 4 2019, 11:19 AM
fsu committed rS344754: Do not panic if inode bitmap is corrupted..
Do not panic if inode bitmap is corrupted.
Mar 4 2019, 11:12 AM
fsu closed D19325: Do not panic if inode bitmap is corrupted..
Mar 4 2019, 11:12 AM
fsu committed rS344753: Validate block bitmaps..
Validate block bitmaps.
Mar 4 2019, 11:01 AM
fsu closed D19324: Validate block bitmaps..
Mar 4 2019, 11:01 AM
fsu closed D19323: Add additional on-disk inode checks..
Mar 4 2019, 10:55 AM
fsu committed rS344752: Add additional on-disk inode checks..
Add additional on-disk inode checks.
Mar 4 2019, 10:55 AM
fsu committed rS344751: Make superblock reading logic more strict..
Make superblock reading logic more strict.
Mar 4 2019, 10:42 AM
fsu closed D19322: Make superblock reading logic more strict..
Mar 4 2019, 10:42 AM

Feb 27 2019

fsu added a comment to D19327: Do not read the on-disk inode in case of vnode allocation..
In D19327#413791, @pfg wrote:

Note why we specifically set ip->i_flags = 0 since r294652:

Feb 27 2019, 4:32 PM
fsu added a comment to D19325: Do not panic if inode bitmap is corrupted..
In D19325#414951, @pfg wrote:

We should probably keep this panic for consistency with UFS, which also panics on this case.

Feb 27 2019, 4:32 PM
fsu created D19385: Fix double free in case of mount error..
Feb 27 2019, 11:37 AM

Feb 24 2019

fsu added a reviewer for D19326: Fix integer overflow possibility.: pfg.
Feb 24 2019, 1:16 PM
fsu created D19327: Do not read the on-disk inode in case of vnode allocation..
Feb 24 2019, 1:16 PM
fsu created D19326: Fix integer overflow possibility..
Feb 24 2019, 1:15 PM
fsu created D19325: Do not panic if inode bitmap is corrupted..
Feb 24 2019, 1:14 PM
fsu created D19324: Validate block bitmaps..
Feb 24 2019, 1:14 PM
fsu created D19323: Add additional on-disk inode checks..
Feb 24 2019, 1:14 PM
fsu created D19322: Make superblock reading logic more strict..
Feb 24 2019, 1:13 PM

Jan 13 2019

fsu committed rS342999: MFC r342933:.
MFC r342933:
Jan 13 2019, 12:13 PM
fsu committed rS342998: MFC r342933:.
MFC r342933:
Jan 13 2019, 12:13 PM

Jan 11 2019

fsu committed rS342933: Fix errno values returned from DUMMY_XATTR linuxulator calls.
Fix errno values returned from DUMMY_XATTR linuxulator calls
Jan 11 2019, 7:58 AM
fsu closed D18812: Fix errno values returned from DUMMY_XATTR linuxulator calls..
Jan 11 2019, 7:58 AM

Jan 10 2019

fsu added a comment to D18812: Fix errno values returned from DUMMY_XATTR linuxulator calls..

Thanks.

The duplication of these stubs is rather unfortunate...

Jan 10 2019, 5:46 PM
fsu created D18812: Fix errno values returned from DUMMY_XATTR linuxulator calls..
Jan 10 2019, 5:24 PM

Aug 21 2018

fsu committed rS338153: FUSE extattrs: fix issue when neither uio nor size were not passed to VOP_*….
FUSE extattrs: fix issue when neither uio nor size were not passed to VOP_*…
Aug 21 2018, 6:50 PM
fsu closed D13737: fuse extattrs: fix issue when neither uio nor size were not passed to VOP_* (cosmetic only)..
Aug 21 2018, 6:50 PM
fsu committed rS338152: FUSE extattrs: fix issue when neither uio nor size were not passed to VOP_*..
FUSE extattrs: fix issue when neither uio nor size were not passed to VOP_*.
Aug 21 2018, 6:40 PM
fsu closed D13528: fuse extattrs: fix issue when neither uio nor size were not passed to VOP_* (logic only)..
Aug 21 2018, 6:40 PM
fsu committed rS338151: Change unused inodes counters behavior in the cylinder groups..
Change unused inodes counters behavior in the cylinder groups.
Aug 21 2018, 6:39 PM
fsu committed rS338150: Fix directory blocks checksum updating logic..
Fix directory blocks checksum updating logic.
Aug 21 2018, 6:39 PM

Aug 9 2018

fsu added inline comments to D13528: fuse extattrs: fix issue when neither uio nor size were not passed to VOP_* (logic only)..
Aug 9 2018, 8:06 AM

Aug 8 2018

fsu committed rS337454: Split the dir_index and dir_nlink features..
Split the dir_index and dir_nlink features.
Aug 8 2018, 12:08 PM
fsu committed rS337453: Fix directory blocks checksum updating logic..
Fix directory blocks checksum updating logic.
Aug 8 2018, 12:08 PM

May 13 2018

fsu committed rS333586: Fix directory blocks checksumming..
Fix directory blocks checksumming.
May 13 2018, 7:48 PM
fsu closed D15396: Fix directory blocks checksumming..
May 13 2018, 7:48 PM
fsu committed rS333585: Fix on-disk inode checksum calculation logic..
Fix on-disk inode checksum calculation logic.
May 13 2018, 7:29 PM
fsu closed D15395: Fix on-disk inode checksum calculation logic..
May 13 2018, 7:29 PM
fsu committed rS333584: Fix EXT2FS_DEBUG definition usage..
Fix EXT2FS_DEBUG definition usage.
May 13 2018, 7:19 PM
fsu closed D15394: Fix EXT2FS_DEBUG definition usage..
May 13 2018, 7:19 PM
fsu added inline comments to D15396: Fix directory blocks checksumming..
May 13 2018, 8:04 AM
fsu added inline comments to D15395: Fix on-disk inode checksum calculation logic..
May 13 2018, 8:02 AM
fsu added inline comments to D15394: Fix EXT2FS_DEBUG definition usage..
May 13 2018, 8:00 AM

May 11 2018

fsu created D15396: Fix directory blocks checksumming..
May 11 2018, 6:54 PM
fsu created D15395: Fix on-disk inode checksum calculation logic..
May 11 2018, 6:54 PM
fsu created D15394: Fix EXT2FS_DEBUG definition usage..
May 11 2018, 6:54 PM

Feb 5 2018

fsu accepted D14193: ext2fs: Tidy ups for variable assignment..

I am more prefer to initialize stack variables immediately after declaration, but, seems like it is not so perfect practice.
Ok.

Feb 5 2018, 7:53 AM

Jan 29 2018

fsu committed rS328566: Fix mistake in case of zeroed inode check..
Fix mistake in case of zeroed inode check.
Jan 29 2018, 10:15 PM
fsu committed rS328564: Add flex_bg/meta_bg features RW support..
Add flex_bg/meta_bg features RW support.
Jan 29 2018, 9:54 PM
fsu closed D13964: Add flex_bg/meta_bg features RW support. .
Jan 29 2018, 9:54 PM