History log of /src/sys/nfs/nfs_iod.c |
Revision | | Date | Author | Comments |
1.9 |
| 21-Mar-2023 |
christos | PR/57279: Izumi Tsutsui: Fix some {int,long} -> time_t. Still things will break eventually because parts of the nfs protocol assume time_t will fit in 32 bits.
|
1.8 |
| 03-Sep-2018 |
riastradh | branches: 1.8.30; Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
1.7 |
| 15-Jul-2015 |
manu | branches: 1.7.16; 1.7.18; Fix soft NFS force unmount
For many reasons, forcibly unmounting a soft NFS mount could hang forever. Here are the fixes: - Introduce decents timeouts in operation that awaited NFS server reply. - On timeout, fails operations on soft mounts with EIO. - Introduce NFSMNT_DISMNTFORCE to let the filesystem know that a force unmount is ongoing. This causes timeouts to be reduced and prevents the NFS client to attempt reconnecting to the NFS server.
Also fix a race condition where some asynchronous I/O could reference destroyed mount structures. We fix this by awaiting asynchronous I/O to drain before proceeding.
Reviewed by Chuck Silvers.
|
1.6 |
| 25-Oct-2013 |
martin | branches: 1.6.4; 1.6.6; Mark a diagnostic-only variable
|
1.5 |
| 14-Sep-2013 |
martin | Avoid unused variable warnings
|
1.4 |
| 31-Dec-2009 |
christos | branches: 1.4.12; 1.4.22; 1.4.26; handle the nuidhash_max lossage differently
|
1.3 |
| 14-Mar-2009 |
dsl | branches: 1.3.2; ANSIfy another 1261 function definitions. The only ones left in sys are beyond by sed script! (or in sys/dist or sys/external) Mostly they have function pointer parameters.
|
1.2 |
| 14-Mar-2009 |
dsl | Change about 4500 of the K&R function definitions to ANSI ones. There are still about 1600 left, but they have ',' or /* ... */ in the actual variable definitions - which my awk script doesn't handle. There are also many that need () -> (void). (The script does handle misordered arguments.)
|
1.1 |
| 19-Nov-2008 |
ad | branches: 1.1.4; 1.1.6; 1.1.8; 1.1.10; Make the emulations, exec formats, coredump, NFS, and the NFS server into modules. By and large this commit:
- shuffles header files and ifdefs - splits code out where necessary to be modular - adds module glue for each of the components - adds/replaces hooks for things that can be installed at runtime
|
1.1.10.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.1.8.3 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.1.8.2 |
| 19-Jan-2009 |
skrll | Sync with HEAD.
|
1.1.8.1 |
| 19-Nov-2008 |
skrll | file nfs_iod.c was added on branch nick-hppapmap on 2009-01-19 13:20:20 +0000
|
1.1.6.2 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.1.6.1 |
| 19-Nov-2008 |
mjf | file nfs_iod.c was added on branch mjf-devfs2 on 2009-01-17 13:29:34 +0000
|
1.1.4.2 |
| 13-Dec-2008 |
haad | Update haad-dm branch to haad-dm-base2.
|
1.1.4.1 |
| 19-Nov-2008 |
haad | file nfs_iod.c was added on branch haad-dm on 2008-12-13 01:15:28 +0000
|
1.3.2.4 |
| 11-Mar-2010 |
yamt | sync with head
|
1.3.2.3 |
| 16-Jul-2009 |
yamt | fix a merge botch.
|
1.3.2.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.3.2.1 |
| 14-Mar-2009 |
yamt | file nfs_iod.c was added on branch yamt-nfs-mp on 2009-05-04 08:14:22 +0000
|
1.4.26.1 |
| 18-May-2014 |
rmind | sync with head
|
1.4.22.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.4.22.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.4.12.1 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.6.6.1 |
| 22-Sep-2015 |
skrll | Sync with HEAD
|
1.6.4.1 |
| 04-Nov-2015 |
riz | Pull up following revision(s) (requested by manu in ticket #882): sbin/umount/umount.c: revision 1.48 sys/nfs/nfsmount.h: revision 1.53 sys/nfs/nfs_var.h: revision 1.94 sys/nfs/nfs_iod.c: revision 1.7 sys/nfs/nfs_socket.c: revision 1.197 sys/nfs/nfs_bio.c: revision 1.191 sys/nfs/nfs_vfsops.c: revision 1.230 sys/nfs/nfs_clntsocket.c: revision 1.3 Remove useless and harmful sync(2) call in umount(8) Remove sync(2) call before unmount(2) in umount(8). This sync(2) is useless since unmount(2) will perform a VFS_SYNC anyway. But moreover, this sync(2) may be harmful, as there are some situation where it cannot return (unreachable NFS server, for instance), causing umount -f to be uneffective. Fix soft NFS force unmount For many reasons, forcibly unmounting a soft NFS mount could hang forever. Here are the fixes: - Introduce decents timeouts in operation that awaited NFS server reply. - On timeout, fails operations on soft mounts with EIO. - Introduce NFSMNT_DISMNTFORCE to let the filesystem know that a force unmount is ongoing. This causes timeouts to be reduced and prevents the NFS client to attempt reconnecting to the NFS server. Also fix a race condition where some asynchronous I/O could reference destroyed mount structures. We fix this by awaiting asynchronous I/O to drain before proceeding. Reviewed by Chuck Silvers.
|
1.7.18.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.7.16.1 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.8.30.1 |
| 20-Sep-2024 |
martin | Pull up following revision(s) (requested by rin in ticket #880):
sys/nfs/nfs_iod.c: revision 1.9 sys/nfs/nfs_vfsops.c: revision 1.245 sys/nfs/nfs_clntsubs.c: revision 1.7
PR/57279: Izumi Tsutsui: Fix some {int,long} -> time_t. Still things will break eventually because parts of the nfs protocol assume time_t will fit in 32 bits.
|