]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
The SUJ journal is only prepared to handle full-size block numbers, so we
authormckusick <mckusick@FreeBSD.org>
Thu, 7 Aug 2014 16:53:07 +0000 (16:53 +0000)
committermckusick <mckusick@FreeBSD.org>
Thu, 7 Aug 2014 16:53:07 +0000 (16:53 +0000)
commit8565976fe44a0bba6070a29069b9bc3774f748d1
treec0e1d718c84be0003b5e10a3aa6415665b288579
parent82a8a0e55d5e47fb9fe2e4de774728467d2841d6
The SUJ journal is only prepared to handle full-size block numbers, so we
have to adjust freeblk records to reflect the change to a full-size block.
For example, suppose we have a block made up of fragments 8-15 and
want to free its last two fragments. We are given a request that says:
    FREEBLK ino=5, blkno=14, lbn=0, frags=2, oldfrags=0
where frags are the number of fragments to free and oldfrags are the
number of fragments to keep. To block align it, we have to change it to
have a valid full-size blkno, so it becomes:
    FREEBLK ino=5, blkno=8, lbn=0, frags=2, oldfrags=6

Submitted by: Mikihito Takehara
Tested by:    Mikihito Takehara
Reviewed by:  Jeff Roberson
MFC after:    1 week
sys/ufs/ffs/ffs_softdep.c