#
9e916c31 |
| 18-Oct-2007 |
Bruce Evans <bde@FreeBSD.org> |
Add noclusterr and noclusterw options to the options list. I forgot these when I implemented clustering.
|
#
7c3fc9de |
| 18-Oct-2007 |
Bruce Evans <bde@FreeBSD.org> |
Fix some style bugs in the mount options list. Mainly, sort the list, leaving space for adding missing options. Negative options are sorted after removing their "no" prefix, and generic options are
Fix some style bugs in the mount options list. Mainly, sort the list, leaving space for adding missing options. Negative options are sorted after removing their "no" prefix, and generic options are sorted before msdosfs-specific ones.
show more ...
|
#
77465d93 |
| 16-Oct-2007 |
Alfred Perlstein <alfred@FreeBSD.org> |
Get rid of qaddr_t.
Requested by: bde
|
#
1dc5b1cc |
| 15-Aug-2007 |
John Baldwin <jhb@FreeBSD.org> |
On 6.x this works:
% mount | grep home /dev/ad4s1e on /home (ufs, local, noatime, soft-updates) % mount -u -o atime /home % mount | grep home /dev/ad4s1e on /home (ufs, local, soft-updates)
Restore
On 6.x this works:
% mount | grep home /dev/ad4s1e on /home (ufs, local, noatime, soft-updates) % mount -u -o atime /home % mount | grep home /dev/ad4s1e on /home (ufs, local, soft-updates)
Restore this behavior for on 7.x for the following mount options: noatime, noclusterr, noclusterw, noexec, nosuid, nosymfollow
In addition, on 7.x, the following are equivalent: mount -u -o atime /home mount -u -o nonoatime /home
Ideally, when we introduce new mount options, we should avoid options starting with "no". :)
Requested by: jhb Reported by: Karol Kwiat <karol.kwiat gmail com>, Scott Hetzel <swhetzel gmail com> Approved by: re (bmah) Proxy commit for: rodrigc
show more ...
|
#
2d7c6b27 |
| 07-Aug-2007 |
Bruce Evans <bde@FreeBSD.org> |
Fix some style bugs (mainly some whitespace errors).
Approved by: re (kensmith) (blanket)
|
#
6becd1c8 |
| 07-Aug-2007 |
Bruce Evans <bde@FreeBSD.org> |
Sort includes.
Remove banal comments attached to includes.
Approved by: re (kensmith) (blanket)
|
#
1103771d |
| 07-Aug-2007 |
Bruce Evans <bde@FreeBSD.org> |
Include <sys/mutex.h>'s prerequisite <sys/lock.h> instead of depending on namespace pollution in <sys/vnode.h>.
Sort the include of <sys/mutex.h> instead of unsorting it after <sys/vnode.h> and depe
Include <sys/mutex.h>'s prerequisite <sys/lock.h> instead of depending on namespace pollution in <sys/vnode.h>.
Sort the include of <sys/mutex.h> instead of unsorting it after <sys/vnode.h> and depending on the pollution there.
Approved by: re (kensmith) (blanket)
show more ...
|
#
6fd81fc7 |
| 07-Aug-2007 |
Bruce Evans <bde@FreeBSD.org> |
Remove unused include(s).
Approved by: re (kensmith) (blanket)
|
#
8d61a735 |
| 05-Aug-2007 |
Bruce Evans <bde@FreeBSD.org> |
Silently fix up the estimated next free cluster number from the fsinfo sector, instead of failing the whole mount if it is garbage. Fields in the fsinfo sector are only advisory, so there are better
Silently fix up the estimated next free cluster number from the fsinfo sector, instead of failing the whole mount if it is garbage. Fields in the fsinfo sector are only advisory, so there are better sanity checks than this, and we already silently fix up the only other advisory field in the fsinfo (the free cluster count).
This wasn't handled quite right in rev.1.92, 1.117, or in NetBSD. 1.92 also failed the whole mount for the non-garbage magic value 0xffffffff 1.117 fixed this well enough in practice since garbage values shouldn't occur in practice, but left the error handling larger and more convoluted than necessary. Now we handle the magic value as a special case of fixing up all out of bounds values.
Also fix up the estimated next free cluster number when there is no fsinfo sector. We were using 0, but CLUST_FIRST is safer.
Approved by: re (kensmith)
show more ...
|
#
37269429 |
| 04-Aug-2007 |
Bruce Evans <bde@FreeBSD.org> |
Oops, fix the fix for the i/o size of the fsinfo block. Its log message explained why the size is 1 sector, but the code used a size of 1 cluster.
I/o sizes larger than necessary may cause serious
Oops, fix the fix for the i/o size of the fsinfo block. Its log message explained why the size is 1 sector, but the code used a size of 1 cluster.
I/o sizes larger than necessary may cause serious coherency problems in the buffer cache. Here I think there were only minor efficiency problems, since a too-large fsinfo buffer could only get far enough to overlap buffers for the same vnode (the device vnode), so mappings are coherent at the page level although not at the buffer level, and the former is probably enough due to our limited use of the fsinfo buffer.
Approved by: re (kensmith)
show more ...
|
#
4eb3abf0 |
| 23-Jul-2007 |
Bruce Evans <bde@FreeBSD.org> |
Make using msdosfs as the root file system sort of work:
o Initialize ownerships and permissions. They were garbage (0) for root mounts since vfs_mountroot_try() doesn't ask for them to be set
Make using msdosfs as the root file system sort of work:
o Initialize ownerships and permissions. They were garbage (0) for root mounts since vfs_mountroot_try() doesn't ask for them to be set and msdosfs's old incomplete code to set them was removed. The garbage happened to give the correct ownerships root:wheel, but it gave permissions 000 so init could not be execed. Use the macros for root: wheel and 0755. (The removed code gave 0:0 and 0777. 0755 is more normal and secure, thought wrong for /tmp.)
o Check the readonly flag for initial (non-MNT_UPDATE) mounts in the correct place, as in ffs. For root mounts, it is only passed in mp->mnt_flags, since vfs_mountroot_try() only passes it as a flag and nothing translates the flag to the "ro" option string. msdosfs only looked for it in the string, so it gave a rw mount for root mounts without even clearing the flag in mp->mnt_flags, so the final state was inconsistent. Checking the flag only in mp->mnt_flags works for initial userland mounts too. The MNT_UPDATE case is messier.
The main point that should work but doesn't is fsck of msdosfs root while it is mounted ro. This needs mainly MNT_RELOAD support to work. It should be possible to run fsck -p and succeed provided the fs is consistent, not just for msdosfs, but this fails because fsck -p always tries to open the device rw. The hack that allows open for writing in ffs is not implemented in msdosfs, since without MNT_RELOAD support writing could only be harmful. So fsck must be turned off to use msdosfs as root. This is quite dangerous, since msdosfs is still missing actually using its fs-dirty flag internally, so it is happy to mount dirty fileystems rw.
Unrelated changes: - Fix missing error handling for MNT_UPDATE from rw to ro. - Catch up with renaming msdos to msdosfs in a string.
Approved by: re (kensmith)
show more ...
|
#
93fe42b6 |
| 12-Jul-2007 |
Bruce Evans <bde@FreeBSD.org> |
Round up the FAT block size to a multiple of the sector size so that i/o to the FAT is possible.
Make the FAT block size less arbitrary before it is rounded up: - for FAT12, default to 3*512 instead
Round up the FAT block size to a multiple of the sector size so that i/o to the FAT is possible.
Make the FAT block size less arbitrary before it is rounded up: - for FAT12, default to 3*512 instead of to 3 sectors. The magic 3 is the default number of 512-byte FAT sectors on a floppy drive. That many sectors is too many if the sector size is larger. - for !FAT12, default to PAGE_SIZE instead of to 4096. Remove MSDOSFS_DFLTBSIZE since it only obfuscated this 4096.
For reading the BPB, use a block size of 8192 instead of 2048 so that sector sizes up to 8192 can work. We should try several sizes, or just try the maximum supported size (MAXBSIZE = 64K). I use 8192 because that is enough for DVD-RW's (even 2048 is enough) and 8192 has been tested a lot in use by ffs.
This completes fixing msdosfs for some large sector sizes (up to 8K for read and 64K for write). Microsoft documents support for sector sizes up to 4K in mdosfs. ffs is currently limited to 8K for both read and write.
Approved by: re (kensmith) Approved by: nyan (several years ago)
show more ...
|
#
fd7c4230 |
| 12-Jul-2007 |
Bruce Evans <bde@FreeBSD.org> |
Fix some bugs involving the fsinfo block (many remain unfixed). This is part of fixing msdosfs for large sector sizes. One of the fixed bugs was fatal for large sector sizes.
1. The fsinfo block h
Fix some bugs involving the fsinfo block (many remain unfixed). This is part of fixing msdosfs for large sector sizes. One of the fixed bugs was fatal for large sector sizes.
1. The fsinfo block has size 512, but it was misunderstood and declared as having size 1024, with nothing in the second 512 bytes except a signature at the end. The second 512 bytes actually normally (if the file system was created by Windows) consist of a second boot sector which is normally (in WinXP) empty except for a signature -- the normal layout is one boot sector, one fsinfo sector, another boot sector, then these 3 sectors duplicated. However, other layouts are valid. newfs_msdos produces a valid layout with one boot sector, one fsinfo sector, then these 2 sectors duplicated. The signature check for the extra part of the fsinfo was thus normally checking the signature in either the second boot sector or the first boot sector in the copy, and thus accidentally succeeding. The extra signature check would just fail for weirder layouts with 512-byte sectors, and for normal layouts with any other sector size.
Remove the extra bytes and the extra signature check.
2. Old versions did i/o to the fsinfo block using size 1024, with the second half only used for the extra signature check on read. This was harmless for sector size 512, and worked accidentally for sector size 1024. The i/o just failed for larger sector sizes.
The version being fixed did i/o to the fsinfo block using size fsi_size(pmp) = (1024 << ((pmp)->pm_BlkPerSec >> 2)). This expression makes no sense. It happens to work for sector small sector sizes, but for sector size 32K it gives the preposterous value of 64M and thus causes panics. A sector size of 32768 is necessary for at least some DVD-RW's (where the minimum write size is 32768 although the minimum read size is 2048).
Now that the size of the fsinfo block is 512, it always fits in one sector so there is no need for a macro to express it. Just use the sector size where the old code uses 1024.
Approved by: re (kensmith) Approved by: nyan (several years ago for a different version of (2))
show more ...
|
#
1be5bc74 |
| 01-Jun-2007 |
Tom Rhodes <trhodes@FreeBSD.org> |
Revert previous, part of NFS that I didn't know about.
|
#
a33ebaec |
| 01-Jun-2007 |
Tom Rhodes <trhodes@FreeBSD.org> |
Garbage collect msdosfs_fhtovp; it appears unused and I have been using MSDOSFS without this function and problems for the last month.
|
#
10bcafe9 |
| 15-Feb-2007 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Move vnode-to-file-handle translation from vfs_vptofh to vop_vptofh method. This way we may support multiple structures in v_data vnode field within one file system without using black magic.
Vnode-
Move vnode-to-file-handle translation from vfs_vptofh to vop_vptofh method. This way we may support multiple structures in v_data vnode field within one file system without using black magic.
Vnode-to-file-handle should be VOP in the first place, but was made VFS operation to keep interface as compatible as possible with SUN's VFS. BTW. Now Solaris also implements vnode-to-file-handle as VOP operation.
VFS_VPTOFH() was left for API backward compatibility, but is marked for removal before 8.0-RELEASE.
Approved by: mckusick Discussed with: many (on IRC) Tested with: ufs, msdosfs, cd9660, nullfs and zfs
show more ...
|
#
d6140aaa |
| 08-Feb-2007 |
Craig Rodrigues <rodrigc@FreeBSD.org> |
Add noatime to the list of mount options that msdosfs accepts.
PR: 108896 Submitted by: Eugene Grosbein <eugen grosbein pp ru>
|
#
dc9a617a |
| 08-Feb-2007 |
Craig Rodrigues <rodrigc@FreeBSD.org> |
Style fixes: use ANSI C function declarations.
|
#
8a4cab02 |
| 06-Feb-2007 |
Craig Rodrigues <rodrigc@FreeBSD.org> |
Eliminate some dead code which was introduced in 1.23, yet was always commented out.
|
#
61ad2e26 |
| 30-Jan-2007 |
Tai-hwa Liang <avatar@FreeBSD.org> |
Fixing compilation bustage by removing references to opt_msdosfs.h.
This auto-generated header file no longer exists since the removal of MSDOSFS_LARGE in sys/conf/options:1.574.
|
#
f458f2a5 |
| 30-Jan-2007 |
Craig Rodrigues <rodrigc@FreeBSD.org> |
Add a "-o large" mount option for msdosfs. Convert compile-time checks for #ifdef MSDOSFS_LARGE to run-time checks to see if "-o large" was specified.
Test case provided by Oliver Fromme: truncat
Add a "-o large" mount option for msdosfs. Convert compile-time checks for #ifdef MSDOSFS_LARGE to run-time checks to see if "-o large" was specified.
Test case provided by Oliver Fromme: truncate -s 200G test.img mdconfig -a -t vnode -f test.img -u 9 newfs_msdos -s 419430400 -n 1 /dev/md9 zip250 mount -t msdosfs /dev/md9 /mnt # should fail mount -t msdosfs -o large /dev/md9 /mnt # should succeed
PR: 105964 Requested by: Oliver Fromme <olli lurza secnetix de> Tested by: trhodes MFC after: 2 weeks
show more ...
|
Revision tags: release/6.2.0_cvs, release/6.2.0 |
|
#
82c59ec6 |
| 06-Jan-2007 |
Craig Rodrigues <rodrigc@FreeBSD.org> |
When performing a mount update to change a mount from read-only to read-write, do not call markvoldirty() until the mount has been flagged as read-write. Due to the nature of the msdosfs code, this b
When performing a mount update to change a mount from read-only to read-write, do not call markvoldirty() until the mount has been flagged as read-write. Due to the nature of the msdosfs code, this bug only seemed to appear for FAT-16 and FAT-32.
This fixes the testcase: #!/bin/sh dd if=/dev/zero bs=1m count=1 oseek=119 of=image.msdos mdconfig -a -t vnode -f image.msdos newfs_msdos -F 16 /dev/md0 fd120m mount_msdosfs -o ro /dev/md0 /mnt mount | grep md0 mount -u -o rw /dev/md0; echo $? mount | grep md0 umount /mnt mdconfig -d -u 0
PR: 105412 Tested by: Eugene Grosbein <eugen grosbein pp ru>
show more ...
|
#
e9022ef8 |
| 09-Dec-2006 |
Craig Rodrigues <rodrigc@FreeBSD.org> |
Minor cleanup. If we are doing a mount update, and we pass in an "export" flag indicating that we are trying to NFS export the filesystem, and the MSDOSFS_LARGEFS flag is set on the filesystem, then
Minor cleanup. If we are doing a mount update, and we pass in an "export" flag indicating that we are trying to NFS export the filesystem, and the MSDOSFS_LARGEFS flag is set on the filesystem, then deny the mount update and export request. Otherwise, let the full mount update proceed normally. MSDOSFS_LARGES and NFS don't mix because of the way inodes are calculated for MSDOSFS_LARGEFS.
MFC after: 3 days
show more ...
|
#
acd3428b |
| 06-Nov-2006 |
Robert Watson <rwatson@FreeBSD.org> |
Sweep kernel replacing suser(9) calls with priv(9) calls, assigning specific privilege names to a broad range of privileges. These may require some future tweaking.
Sponsored by: nCircle
Sweep kernel replacing suser(9) calls with priv(9) calls, assigning specific privilege names to a broad range of privileges. These may require some future tweaking.
Sponsored by: nCircle Network Security, Inc. Obtained from: TrustedBSD Project Discussed on: arch@ Reviewed (at least in part) by: mlaier, jmg, pjd, bde, ceri, Alex Lyashkov <umka at sevcity dot net>, Skip Ford <skip dot ford at verizon dot net>, Antoine Brodin <antoine dot brodin at laposte dot net>
show more ...
|
#
5da56ddb |
| 26-Sep-2006 |
Tor Egge <tegge@FreeBSD.org> |
Use mount interlock to protect all changes to mnt_flag and mnt_kern_flag. This eliminates a race where MNT_UPDATE flag could be lost when nmount() raced against sync(), sync_fsync() or quotactl().
|