- 25 Aug, 2002 1 commit
-
-
David S. Miller authored
-
- 24 Aug, 2002 1 commit
-
-
David S. Miller authored
-
- 23 Aug, 2002 29 commits
-
-
Kendrick M. Smith authored
This patch makes three small changes to nfsd_readdir(). First, the 'filldir' routine for NFSv4 may return an arbitrary error, which should become the return value for nfsd_readdir(). I implemented this by adding an 'nfserr' field to the 'struct readdir_cd'. Second, in NFSv4 the caller of nfsd_readdir() will specify an attribute bitmap, which must be communicated to the 'filldir' routine. I implemented this by adding a @bitmap parameter to nfsd_readdir() and a corresponding field in the 'struct readdir_cd'. (The bitmap is not interpreted in any way by nfsd_readdir().) Finally, NFSv4 defines a new error nfserr_readdir_nospc, which indicates that there was not enough buffer space to encode a single entry.
-
Kendrick M. Smith authored
NFSv4 defines a new field in the ACCESS response: a bitmap to indicate which access bits requested by the client are "supported", i.e. meaningful for the object in question. This patch adds a new parameter @supported to nfsd_access(), so that nfsd_access() can set the value of this bitmap.
-
Kendrick M. Smith authored
File creation in NFSv4 is almost the same as in NFSv3, with one minor difference. If an UNCHECKED create is done, and the file exists, we don't set any attributes. Exception: If size==0 is specified as part of the attributes, then we do truncate the file, but only after processing the rest of the OPEN. (File creation is always part of an OPEN request.) This patch defines a new argument *truncp to nfsd_create_v3(), which will be NULL for v3 requests. For v4 requests, it will point to a variable which should be set to 1 if file truncation is still needed. The logic in nfsd_create_v3() is changed as follows: If - *truncp is not NULL - the create is UNCHECKED - the file exists then nfsd_create_v3() returns immediately. If size==0 is specified, then *truncp is set to 1. This is kind of a hack, but the only alternative I could see was creating a new routine nfsd_create_v4(), which would be identical to nfsd_create_v3() except for this point.
-
Kendrick M. Smith authored
If nfsd_unlink() is called with @type equal to 0, then let it do the right thing regardless of the type of the file being unlinked. This is needed for the NFSv4 REMOVE operation, which works for any type of file, even directories.
-
Kendrick M. Smith authored
Sanity check COMMIT arguments by ensuring that (start)+(length) < 2^64. The check is done in a way which is free of signedness pathologies in all cases. This change was inspired by pynfs, Peter Astrand's regression testsuite for NFSv4 servers. The change is necessary for all of the COMMIT tests to pass. However, it's a little open to debate whether the change is really needed. I'm curious to hear the opinions of other developers.
-
Kendrick M. Smith authored
Change fh_compose() so that it will do the right thing if fhp==res_fh. (This is convenient in the NFSv4 LOOKUP operation, which _replaces_ CURRENT_FH with the filehandle obtained by lookup.) This requires extracting the interesting parts of the reference filehandle first, then calling fh_put if it is a re-use.
-
Kendrick M. Smith authored
When a filehandle is cleared with fh_put(), wipe out all traces by clearing ->fh_pre_saved and ->fh_post_saved. This prevents fill_post_wcc() from complaining if the filehandle is later reused. (This could happen in NFSv4 to CURRENT_FH if, for example, LOOKUP LOOKUP occurs in a COMPOUND.)
-
Kendrick M. Smith authored
Return nfserr_nofilehandle (v4 only) in fh_verify() if the filehandle has not been set.
-
Kendrick M. Smith authored
In a few places on the server, I had to change code that looked like: if (rqstp->rq_vers == 3) /* NFSv3 behavior */ else /* NFSv2 behavior */ to: if (rqstp->rq_vers > 2) /* NFSv3 behavior */ else /* NFSv2 behavior */ so that we would get the NFSv3 behavior, not the NFSv2 behavior, in NFSv4. This patch collects all changes of this type.
-
Kendrick M. Smith authored
Change the type checking in fh_verify(). This fixes a bug which I reported on the mailing list a few days ago, and also adds a new error code nfserr_symlink (v4 only). This is returned whenever an operation which is illegal for symlinks is attempted on a symlink, and takes precedence over ERR_NOTDIR or ERR_INVAL.
-
Kendrick M. Smith authored
Add some new NFSv4-only error codes to include/linux/nfsd/nfsd.h
-
Kendrick M. Smith authored
This patch adds new NFSv4-only error codes to include/linux/nfs.h, and also indicates which of the old error codes still exist in NFSv4.
-
Neil Brown authored
If we get here, then bio->bi_bdev isn't set, so we really shouldn't de-reference it.
-
Neil Brown authored
-
Neil Brown authored
..as some standard ioctls expect the per-device ioctl routine to return EINVAL and then fall back on a standard implementation.
-
Neil Brown authored
raid1, raid5 and multipath maintain their own 'operational' flag. This is equivalent to !rdev->faulty and so isn't needed. Similarly raid1 and raid1 maintain a "write_only" flag that is equivalnt to !rdev->in_sync so it isn't needed either. As part of implementing this change, we introduce some extra flag bit in raid5 that are meaningful only inside 'handle_stripe'. Some of these replace the "action" array which recorded what actions were required (and would be performed after the stripe spinlock was released). This has the advantage of reducing our dependance on MD_SB_DISKS which personalities shouldn't need to know about.
-
Neil Brown authored
This flag was used by multipath to make sure only one superblock was written, as there is only one real device. The relevant test is now more explicitly dependant on multipath, and the flag is gone.
-
Neil Brown authored
Instread of the 'skip' variable, just test if rdev is NULL or not.
-
Neil Brown authored
1/ Personalities only know about raid_disks devices. Some might be not in_sync and so cannot be read from, but must be written to. - change MD_SB_DISKS to ->raid_disks - add tests for .write_only 2/ rdev->raid_disk is now -1 for spares. desc_nr is maintained by analyse_sbs and sync_sbs. 3/ spare_inactive method is subsumed into hot_remove_disk spare_writable is subsumed into hot_add_disk. hot_add_disk decides which slot a new device will hold. 4/ spare_active now finds all non-in_sync devices and marks them in_sync. 5/ faulty devices are removed by the md recovery thread as soon as they are idle. Any spares that are available are then added.
-
Neil Brown authored
This is equivalent to ->rdev != NULL, so it isn't needed.
-
Neil Brown authored
This will allow us to know, in the event of a device failure, when the device is completely unused and so can be disconnected from the array. Currently this isn't a problem as drives aren't normally disconnect until after a repacement has been rebuilt, which is a LONG TIME, but that will change shortly... We always increment the count under a spinlock after checking that it hasn't been disconnected already (rdev!= NULL). We disconnect under the same spinlock after checking that the count is zero.
-
Neil Brown authored
This simplifies the error handlers slighty, but allows for even more simplification later.
-
Neil Brown authored
Holding the rdev instead of the bdev does cause an extra de-reference, but it is conceptually cleaner and will allow lots more tidying up.
-
Neil Brown authored
->major_name is "const char *" so we need to sprintf into the kmalloced space *before* assigning that space to ->major_name.
-
Neil Brown authored
1/ Raid0 should not be accessing rdev->sb. 2/ Don't unlock rdev (which releases bdev) until after last use of bdev 3/ Fix typo in a printk ( = should be -) 4/ i should be dd_idx in compute_block
-
Neil Brown authored
-
Neil Brown authored
bufsiz is re-evaluated on recv if SK_CHNGBUF is set, but recv will never be reached if the buffers are too small. So we have to set to to something vaguely reasonable at init time.
-
Neil Brown authored
1/ connect requests would be get lost... As the comment at the top of svcsock.c says when discussing SK_CONN: * after a set, svc_sock_enqueue must be called. We didn't and so lost conneciton requests. 2/ set the max accept backlog to a more reasonable number to cope with bursts of lots of connection requests.
-
Sam Ravnborg authored
-
- 21 Aug, 2002 1 commit
-
-
Linus Torvalds authored
-
- 20 Aug, 2002 8 commits
-
-
Andrew Morton authored
__page_cache_release() needs to check PG_lru inside the lock, because page reclaim may have taken the page off the LRU while this CPU waits on the lock. That's three bugs in a single twenty-line function. So far.
-
Marcus Alanen authored
This fixes some problems in vmalloc.c. The two first parts of the diff fix a spinlock being held if an error occurs in map_vm_area, and the last part fixes the error path of __vmalloc.
-
Linus Torvalds authored
but some files still did (and got the wrong results on UP). Since they didn't actually _use_ the BKL anyway, remove the include.
-
Linus Torvalds authored
since it was generic. Remove all architecture-specific <asm/smplock.h> files.
-
Trond Myklebust authored
- Use req->rq_received to determine the message length instead of assuming that it goes to the end of the page. - If the server returned an illegal record so that we cannot make progress by retrying the request on a fresh page, truncate the entire listing and return a syslog error.
-
Trond Myklebust authored
- Fix the check for whether or not the received message length has somehow been truncated: we need to use req->rq_received rather than the receive buffer length (req->rq_rlen). - Ensure that we set res->eof correctly. In particular, we need to clear it if we find ourselves attempting to recover from a truncated READ. - Don't set PageUptodate() on those pages that are the victim of message truncation.
-
Robert Love authored
- cleanup #defines: I do not follow the rationale behind the odd line-wrapped defines at the beginning of the file. If we have to use multiple lines, then we might as well do so cleanly and according to normal practice... - Remove a level of indirection: do not have spin_lock_foo use spin_lock - just explicitly call what is needed. - we do not need to define the spin_lock functions twice, once for CONFIG_PREEMPT and once for !CONFIG_PREEMPT. Defining them once with the preempt macros will optimize away fine. - cleanup preempt.h too - other misc. cleanup, improved comments, reordering, etc.
-
Ingo Molnar authored
This fixes the ptrace wait4() anomaly that can be observed in any previous Linux kernel i could get my hands at. If the parent still has other children (that are being traced by somebody), we wait for them or return immediately without an error in case of WNOHANG.
-