Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: [tls-maxphys] src/sys

Module Name:    src
Committed By:   tls
Date:           Sun Feb 10 16:26:35 UTC 2013

Modified Files:
        src/sys/dev/raidframe [tls-maxphys]: rf_disks.c
        src/sys/kern [tls-maxphys]: subr_disk.c
        src/sys/sys [tls-maxphys]: disk.h mount.h
        src/sys/ufs/ffs [tls-maxphys]: ffs_vfsops.c
        src/sys/ufs/ufs [tls-maxphys]: ufs_bmap.c ufs_extern.h ufs_readwrite.c

Log Message:
Add an accessor -- ufs_maxphys() -- to check the maximum transfer size
for a given UFS mountpoint, and move the code from mount that finds
the underlying disk and resets the mountpoint max transfer size into a
utility function, ufs_update_maxphys().

Add a global serial number that counts disk property changes to which
filesystems are meant to accomodate themselves.  Make ufs_maxphys()
check it.  This is a sort of flag-polling interface that avoids callbacks
into the filesystem code, but will require freezing filesystems and
draining in-flight transactions before a decrease in size that is
mandatory (like attaching a disk with a smaller maximum transfer size
as a spare in a RAIDframe set), rather than "advisory", like finding
out set geometry from a RAID controller long after boot and deciding
a smaller transfer size would be optimal, can be signalled.  Still, the
"advisory" case is the common one so this is progress.

Make a bit of an example of RAIDframe by making it bump this new
serial number when disks are added to the subsystem.  I will attack
one of the hardware RAID drivers (probably arcmsr) next.

To generate a diff of this commit:
cvs rdiff -u -r1.83 -r1.83.2.1 src/sys/dev/raidframe/rf_disks.c
cvs rdiff -u -r1.100.18.2 -r1.100.18.3 src/sys/kern/subr_disk.c
cvs rdiff -u -r1.57.2.1 -r1.57.2.2 src/sys/sys/disk.h
cvs rdiff -u -r1.207.6.2 -r1.207.6.3 src/sys/sys/mount.h
cvs rdiff -u -r1.278.2.2 -r1.278.2.3 src/sys/ufs/ffs/ffs_vfsops.c
cvs rdiff -u -r1.49.14.1 -r1.49.14.2 src/sys/ufs/ufs/ufs_bmap.c
cvs rdiff -u -r1.72 -r1.72.2.1 src/sys/ufs/ufs/ufs_extern.h
cvs rdiff -u -r1.104.2.1 -r1.104.2.2 src/sys/ufs/ufs/ufs_readwrite.c
cvs rdiff -u -r1.51 -r1.51.2.1 src/sys/ufs/ufs/ufs_vfsops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Home | Main Index | Thread Index | Old Index