An error occurred fetching the project authors.
- 06 Mar, 2004 1 commit
-
-
Andrew Morton authored
From: Gerd Knorr <kraxel@suse.de> Current gcc's error out if a function's declaration and definition disagree about the register passing convention. The patch adds a new `fastcall' declatation primitive, and uses that in all the FASTCALL functions which we could find. A number of inconsistencies were fixed up along the way.
-
- 19 Feb, 2004 1 commit
-
-
Andrew Morton authored
From: Andreas Gruenbacher <agruen@suse.de> The fix for permission() that makes it compliant with POSIX.1-2001 apparently was lost. Here is the patch I sent before. (The relevant lines from the standard text are cited in http://www.ussg.iu.edu/hypermail/linux/kernel/0310.2/0286.html. The fix proposed in that posting did not handle directories without execute permissions correctly.) Make permission check conform to POSIX.1-2001 The access(2) function does not conform to POSIX.1-2001: For root and a file with no permissions, access(file, MAY_READ|MAY_EXEC) returns 0 (it should return -1).
-
- 10 Feb, 2004 1 commit
-
-
Ingo Molnar authored
This is an obvious scalability improvement for write()s. We used a global lock to protect the inode writecount (updated on every open for writing) - this just makes it use the existing inode->i_lock instead. Compiles & boots fine on x86 SMP.
-
- 04 Feb, 2004 2 commits
-
-
Andrew Morton authored
From: James Morris <jmorris@redhat.com> It seems to me that this dentry assignment in open_namei is not needed per the patch below. On this path, dentry is not referenced.
-
Andrew Morton authored
From: Mike Waychison <Michael.Waychison@Sun.COM> The attached patch ensures that we grab vfsmount_lock when grabbing a reference to mnt_parent in follow_up and follow_dotdot. We also don't need to access ->mnt_parent in follow_mount and __follow_down to mntput because we already the parent pointer on the stack.
-
- 01 Oct, 2003 1 commit
-
-
Andrew Morton authored
From: Stephen Smalley <sds@epoch.ncsc.mil> This patch changes the security_inode_permission hook to also take a nameidata parameter in addition to the existing inode and mask parameters. A nameidata is already passed (although sometimes NULL) to fs/namei.c:permission(), and the patch changes exec_permission_lite() to also take a nameidata parameter so that it can pass it along to the security hook. The patch includes corresponding changes to the SELinux module to use the nameidata information when it is available; this allows SELinux to include pathname information in audit messages when a nameidata structure was supplied.
-
- 29 Sep, 2003 1 commit
-
-
Arnaldo Carvalho de Melo authored
-
- 23 Sep, 2003 2 commits
-
-
Alexander Viro authored
Real conversion to 32bit dev_t. Expansion to: * mknod() - 32 * newstat() - 32 on 64bit platforms * stat64() - 32 on mips, 64 on everything else (mips has weird struct stat64 and can't get more than 32 bits). Note that right now the difference is purely theoretical - we don't have internal values above 32 bits, so huge_... vs. new_... only marks the places where 64bit conversion will need extra work. * arch-dependent stat variants - depending on width available. * ustat et.al. - 32 * filesystems that can handle 32 bits right now - 32 * ext2 and ext3 - 32, with large dev_t inodes having 0 in the first element of i_data[] (where we store dev_t value for small device numbers) and keeping the value in the second element. * nfsd - 32; it can be driven to 64, but we'll get several issues with NFSv2 support. * RAID - 32 * devmapper - with v1 it's still 16 (nothing to do here), with v4 it's 64. * loop - 64 * initramfs - 32 * do_mounts code - 32. Parts that scan devfs tree are using newstat() on 64bit platforms and stat64() on the rest (IOW, the latest stat variant on given platform). * old_valid_dev()/new_valid_dev() added where needed (stat variants, mostly - we fail with -EOVERFLOW if values do not fit).
-
Alexander Viro authored
Changed sys_mknod() prototype to have unsigned int passed to it instead of current dev_t. Added old_decode_dev() in sys_mknod() and made sure that its callers are passing it old_encode_dev(<value>) Switched sys_ustat() and its variants from dev_t to unsigned (and added old_decode_dev()). Took care of assignments to ROOT_DEV - again, old_decode_dev(). Late-boot search in devfs (call sys_newstat() and compare with st_rdev) also updated.
-
- 20 Aug, 2003 1 commit
-
-
Trond Myklebust authored
link_path_walk() currently treats the special filenames ".", ".." and "/" differently in that it does not call down to the filesystem in order to revalidate the cached dentry, but just assumes that it is fine. For most filesystems this is OK, but it the case of the stateless NFS, this means that it circumvents path staleness detection, and the attribute+data cache revalidation code on such common commands as opendir("."). This change provides a way to do such revalidation for NFS without impacting other filesystems. Note: the failure to revalidate the path here does not result in a call to d_invalidate() unlike (all?) other calls to d_revalidate(). It only results in an ESTALE error being returned to the caller.
-
- 07 Aug, 2003 1 commit
-
-
Andrew Morton authored
From: jbarnes@sgi.com (Jesse Barnes) hwgfs needs lookup_create(), and intermezzo already has copied it. Document it, export it to modules and fix intermezzo.
-
- 10 Jul, 2003 1 commit
-
-
Andrew Morton authored
From: Maneesh Soni <maneesh@in.ibm.com> While path walking we do follow_mount or follow_down which uses dcache_lock for serialisation. vfsmount related operations also use dcache_lock for all updates. I think we can use a separate lock for vfsmount related work and can improve path walking. The following two patches does the same. The first one replaces dcache_lock with new vfsmount_lock in namespace.c. The lock is local to namespace.c and is not required outside. The second patch uses RCU to have lock free lookup_mnt(). The patches are quite simple and straight forward. The lockmeter reults show reduced contention, and lock acquisitions for dcache_lock while running dcachebench* on a 4-way SMP box SPINLOCKS HOLD WAIT UTIL CON MEAN( MAX ) MEAN( MAX )(% CPU) TOTAL NOWAIT SPIN RJECT NAME baselkm-2569: 20.7% 20.9% 0.5us( 146us) 2.9us( 144us)(0.81%) 31590840 79.1% 20.9% 0% dcache_lock mntlkm-2569: 14.3% 13.6% 0.4us( 170us) 2.9us( 187us)(0.42%) 23071746 86.4% 13.6% 0% dcache_lock We get more than 8% improvement on 4-way SMP and 44% improvement on 16-way NUMAQ while runing dcachebench*. Average (usecs/iteration) Std. Deviation (lower is better) 4-way SMP 2.5.69 15739.3 470.90 2.5.69-mnt 14459.6 298.51 16-way NUMAQ 2.5.69 120426.5 363.78 2.5.69-mnt 63225.8 427.60 *dcachebench is a microbenchmark written by Bill Hartner and is available at http://www-124.ibm.com/developerworks/opensource/linuxperf/dcachebench/dcachebench.html vfsmount_lock.patch ------------------- - Patch for replacing dcache_lock with new vfsmount_lock for all mount related operation. This removes the need to take dcache_lock while doing follow_mount or follow_down operations in path walking. I re-ran dcachebench with 2.5.70 as base on 16-way NUMAQ box. Average (usecs/iteration) Std. Deviation (lower is better) 16-way NUMAQ 2.5.70 120710.9 230.67 + vfsmount_lock.patch 65209.6 242.97 + lookup_mnt-rcu.patch 64042.3 416.61 So just the lock splitting (vfsmount_lock.patch) gives almost similar benifits
-
- 07 Jul, 2003 1 commit
-
-
Trond Myklebust authored
The intent patches broke behaviour w.r.t. following symlinks when doing an open() with file creation. The problem occurs in open_namei() because the LOOKUP_PARENT flag is no longer set when we do the call to follow_link().
-
- 04 Jul, 2003 3 commits
-
-
Trond Myklebust authored
- Make the VFS pass the struct nameidata as an optional parameter to the permission() inode operation. - Patch may_create()/may_open() so it passes the struct nameidata from vfs_create()/open_namei() as an argument to permission(). - Add an intent flag for the sys_access() function.
-
Trond Myklebust authored
- Make the VFS pass the struct nameidata as an optional argument to the create inode operation. - Patch vfs_create() to take a struct nameidata as an optional argument.
-
Trond Myklebust authored
- Add open intent information to the 'struct nameidata'. - Pass the struct nameidata as an optional parameter to the lookup() inode operation. - Pass the struct nameidata as an optional parameter to the d_revalidate() dentry operation. - Make link_path_walk() set the LOOKUP_CONTINUE flag in nd->flags instead of passing it as an extra parameter to d_revalidate(). - Make open_namei(), and sys_uselib() set the open()/create() intent data.
-
- 17 Jun, 2003 1 commit
-
-
Frank Cusack authored
Don't remove sillyrenamed files: those will be removed (by nfs_async_unlink) when they are no longer used any more. Remove double initialization of "i_mode" in __nfs_fhget().
-
- 13 Jun, 2003 1 commit
-
-
Chris Wright authored
-
- 09 Jun, 2003 1 commit
-
-
Frank Cusack authored
When foo is unlinked, nfs_unlink() does a sillyrename, this puts the dentry on nfs_delete_queue, and (in the VFS) unhashes it from the dcache. This causes problems, since any later access to the silly-renamed new .nfs file will create a NEW dentry that aliases the one we originally created, but unhashed. This causes various confusion, especially if we want to try to delete it again later. So fix this by not unhash the dentry after silly-renaming. In 2.2, each fs was responsible for doing a d_delete(), in 2.4 and later it happens in the VFS layer and I think it was just an oversight that the 2.4 VFS doesn't consider sillyrename (considering the code and comments that are cruft). Also fixed up some comments while debugging this.
-
- 29 May, 2003 1 commit
-
-
Andrew Morton authored
I'm not sure why I used igrab() in unlink(). igrab takes the oft-taken inode_lock. The caller has a ref, so a simple increment of i_count will suffice.
-
- 07 May, 2003 1 commit
-
-
Andrew Morton authored
From: Stewart Smith <stewartsmith@mac.com> Remove the UPDATE_ATIME() macro, use update_atime() directly.
-
- 16 Apr, 2003 1 commit
-
-
David Mosberger authored
The patch below is needed to avoid a deadlock on fs->lock. Without the patch, if __emul_lookup_dentry() returns 0, we fail to reacquire current->fs->lock and then go ahead to read_unlock() it anyhow. Bad for your health. I believe the bug was introduced when the fast pathwalk was reverted in order to introduce the RCU lockless path walking.
-
- 08 Apr, 2003 1 commit
-
-
Linus Torvalds authored
-
- 03 Apr, 2003 1 commit
-
-
Andrew Morton authored
From: Maneesh Soni <maneesh@in.ibm.com> Here is a patch to use seqlock for real_lookup race with d_lookup as suggested by Linus. The race condition can result in duplicate dentry when d_lookup fails due concurrent d_move in some unrelated directory. Apart from real_lookup, lookup_hash()->cached_lookup() can also fail due to same reason. So, for that I am doing the d_lookup again. Now we have __d_lookup (called from do_lookup() during pathwalk) and d_lookup which uses seqlock to protect againt rename race. dcachebench numbers (lower is better) don't have much difference on a 4-way PIII xeon SMP box. base-2565 Average usec/iteration 19059.4 Standard Deviation 503.07 base-2565 + seq_lock Average usec/iteration 18843.2 Standard Deviation 450.57
-
- 10 Mar, 2003 1 commit
-
-
Linus Torvalds authored
-
- 06 Mar, 2003 1 commit
-
-
Linus Torvalds authored
concurrent renames in another directory. I doubt this can be triggered in practice, and the fix is a bit heavy-handed, but let's see if numbers can show that the simple fix doesn't show any real lock contention.
-
- 15 Feb, 2003 1 commit
-
-
Andrew Morton authored
Patch from Maneesh Soni <maneesh@in.ibm.com> Revert the fast-walk dcache code in preparation for dcache_rcu.
-
- 04 Feb, 2003 1 commit
-
-
Andrew Morton authored
Truncates can take a very long time. Especially if there is a lot of writeout happening, because truncate must wait on in-progress I/O. And sys_unlink() is performing that truncate while holding the parent directory's i_sem. This basically shuts down new accesses to the entire directory until the synchronous I/O completes. In the testing I've been doing, that directory is /tmp, and this hurts. So change sys_unlink() to perform the actual truncate outside i_sem. When there is a continuous streaming write to the same disk, this patch reduces the time for `make -j4 bzImage' from 370 seconds to 220.
-
- 16 Jan, 2003 1 commit
-
-
Stephen D. Smalley authored
This patch removes the security_inode_post_lookup hook entirely and adds a security_d_instantiate hook call to the d_instantiate function and the d_splice_alias function. The inode_post_lookup hook was subject to races since the inode is already accessible through the dcache before it is called, didn't handle filesystems that directly populate the dcache, and wasn't always called in the desired context (e.g. for pipe, shmem, and devpts inodes). The d_instantiate hook enables initialization of the inode security information. This hook is used by SELinux and by DTE to setup the inode security state, and eliminated the need for the inode_precondition function in SELinux.
-
- 11 Jan, 2003 1 commit
-
-
Andrew Morton authored
- Fix error-path mem leak in __vfs_follow_link() (From a recent AC->2.4 patch) - Make drivers/net/aironet4500_proc.c:driver_lock static.
-
- 05 Dec, 2002 1 commit
-
-
Rusty Russell authored
From: Marcus Alanen <maalanen@ra.abo.fi>
-
- 01 Dec, 2002 1 commit
-
-
Linus Torvalds authored
Badness results.
-
- 29 Nov, 2002 1 commit
-
-
Steve Baur authored
One of Greg KH's security cleanups reversed the sense of a test. Without this patch, 2.5.50 oopses at boot. Please apply.
-
- 27 Nov, 2002 1 commit
-
-
Greg Kroah-Hartman authored
-
- 19 Nov, 2002 1 commit
-
-
Matthew Wilcox authored
Al pointed out that the current name of get_lease is extremely confusing and I agree. This (a) renames it to break_lease and (b) fixes a bug noticed by Dave Hansen which could cause a NULL pointer dereference under high load.
-
- 18 Nov, 2002 1 commit
-
-
Maneesh Soni authored
This cleans up the dcache code to always use the proper dcache functions (d_unhashed and __d_drop) instead of accessing the dentry lists directly. In other words: use "d_unhashed(dentry)" instead of doing a manual "list_empty(&dentry->d_hash)" test. And use "__d_drop(dentry)" instead of doing "list_del_init(&dentry->d_hash)" by hand. This will help the dcache-rcu patches.
-
- 16 Nov, 2002 1 commit
-
-
Christoph Hellwig authored
This is a preparation to get rid of the implicit includes in dcache.h and fs_struct.h.
-
- 30 Oct, 2002 1 commit
-
-
Theodore Y. Ts'o authored
This patch (as well as the previous one) implements core ACL support which is needed for XFS as well as ext2/3 ACL support. It causes umask handling to be skilled for inodes that contain POSIX acl's, so that the original mode information can be passed down to the low-level fs code, which will take care of handling the umask.
-
- 17 Oct, 2002 1 commit
-
-
Greg Kroah-Hartman authored
-
- 17 Sep, 2002 1 commit
-
-
Art Haas authored
Here's a resend of C99 patches for the files in fs.
-