summaryrefslogtreecommitdiff
path: root/fs/devpts
AgeCommit message (Collapse)Author
2008-08-01[PATCH] devpts: switch to IDAAlexey Dobriyan
Devpts code wants just numbers for tty indexes. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2008-04-30devpts: factor out PTY index allocationSukadev Bhattiprolu
Factor out the code used to allocate/free a pts index into new interfaces, devpts_new_index() and devpts_kill_index(). This localizes the external data structures used in managing the pts indices. [akpm@linux-foundation.org: undo accidental mutex2sem conversion] Signed-off-by: Sukadev Bhattiprolu <sukadev@us.ibm.com> Signed-off-by: Serge Hallyn <serue@us.ibm.com> Signed-off-by: Matt Helsley <matthltc@us.ibm.com> Acked-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-08mount options: fix devptsMiklos Szeredi
Add a .show_options super operation to devpts. Small cleanup: when parsing the "mode" option, mask with S_IALLUGO instead of ~S_IFMT. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Acked-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08devpts: add fsnotify create eventFlorin Malita
Currently, devpts doesn't generate an fsnotify event upon pts creation because the regular vfs paths aren't involved. Deallocation, on the other hand, correctly generates a nameremove event thanks to the d_delete() invocation in devpts_pty_kill(). This patch adds the missing fsnotify_create() trigger in devpts_pty_new(). Signed-off-by: Florin Malita <fmalita@gmail.com> Acked-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-12[PATCH] Mark struct super_operations constJosef 'Jeff' Sipek
This patch is inspired by Arjan's "Patch series to mark struct file_operations and struct inode_operations const". Compile tested with gcc & sparse. Signed-off-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2006-09-27[PATCH] inode-diet: Eliminate i_blksize from the inode structureTheodore Ts'o
This eliminates the i_blksize field from struct inode. Filesystems that want to provide a per-inode st_blksize can do so by providing their own getattr routine instead of using the generic_fillattr() function. Note that some filesystems were providing pretty much random (and incorrect) values for i_blksize. [bunk@stusta.de: cleanup] [akpm@osdl.org: generic_fillattr() fix] Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-09-27[PATCH] inode_diet: Replace inode.u.generic_ip with inode.i_privateTheodore Ts'o
The following patches reduce the size of the VFS inode structure by 28 bytes on a UP x86. (It would be more on an x86_64 system). This is a 10% reduction in the inode size on a UP kernel that is configured in a production mode (i.e., with no spinlock or other debugging functions enabled; if you want to save memory taken up by in-core inodes, the first thing you should do is disable the debugging options; they are responsible for a huge amount of bloat in the VFS inode structure). This patch: The filesystem or device-specific pointer in the inode is inside a union, which is pretty pointless given that all 30+ users of this field have been using the void pointer. Get rid of the union and rename it to i_private, with a comment to explain who is allowed to use the void pointer. This is just a cleanup, but it allows us to reuse the union 'u' for something something where the union will actually be used. [judith@osdl.org: powerpc build fix] Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Judith Lebzelter <judith@osdl.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-23[PATCH] VFS: Permit filesystem to override root dentry on mountDavid Howells
Extend the get_sb() filesystem operation to take an extra argument that permits the VFS to pass in the target vfsmount that defines the mountpoint. The filesystem is then required to manually set the superblock and root dentry pointers. For most filesystems, this should be done with simple_set_mnt() which will set the superblock pointer and then set the root dentry to the superblock's s_root (as per the old default behaviour). The get_sb() op now returns an integer as there's now no need to return the superblock pointer. This patch permits a superblock to be implicitly shared amongst several mount points, such as can be done with NFS to avoid potential inode aliasing. In such a case, simple_set_mnt() would not be called, and instead the mnt_root and mnt_sb would be set directly. The patch also makes the following changes: (*) the get_sb_*() convenience functions in the core kernel now take a vfsmount pointer argument and return an integer, so most filesystems have to change very little. (*) If one of the convenience function is not used, then get_sb() should normally call simple_set_mnt() to instantiate the vfsmount. This will always return 0, and so can be tail-called from get_sb(). (*) generic_shutdown_super() now calls shrink_dcache_sb() to clean up the dcache upon superblock destruction rather than shrink_dcache_anon(). This is required because the superblock may now have multiple trees that aren't actually bound to s_root, but that still need to be cleaned up. The currently called functions assume that the whole tree is rooted at s_root, and that anonymous dentries are not the roots of trees which results in dentries being left unculled. However, with the way NFS superblock sharing are currently set to be implemented, these assumptions are violated: the root of the filesystem is simply a dummy dentry and inode (the real inode for '/' may well be inaccessible), and all the vfsmounts are rooted on anonymous[*] dentries with child trees. [*] Anonymous until discovered from another tree. (*) The documentation has been adjusted, including the additional bit of changing ext2_* into foo_* in the documentation. [akpm@osdl.org: convert ipath_fs, do other stuff] Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Al Viro <viro@zeniv.linux.org.uk> Cc: Nathan Scott <nathans@sgi.com> Cc: Roland Dreier <rolandd@cisco.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-23[PATCH] devpts: use lib/parser.c for parsing mount optionsDomen Puncer
Item from "2.6 should fix" list. Signed-off-by: Domen Puncer <domen@coderock.org> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-09[PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_semJes Sorensen
This patch converts the inode semaphore to a mutex. I have tested it on XFS and compiled as much as one can consider on an ia64. Anyway your luck with it might be different. Modified-by: Ingo Molnar <mingo@elte.hu> (finished the conversion) Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
2005-09-05[PATCH] Generic VFS fallback for security xattrsStephen Smalley
This patch modifies the VFS setxattr, getxattr, and listxattr code to fall back to the security module for security xattrs if the filesystem does not support xattrs natively. This allows security modules to export the incore inode security label information to userspace even if the filesystem does not provide xattr storage, and eliminates the need to individually patch various pseudo filesystem types to provide such access. The patch removes the existing xattr code from devpts and tmpfs as it is then no longer needed. The patch restructures the code flow slightly to reduce duplication between the normal path and the fallback path, but this should only have one user-visible side effect - a program may get -EACCES rather than -EOPNOTSUPP if policy denied access but the filesystem didn't support the operation anyway. Note that the post_setxattr hook call is not needed in the fallback case, as the inode_setsecurity hook call handles the incore inode security state update directly. In contrast, we do call fsnotify in both cases. Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov> Acked-by: James Morris <jmorris@namei.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-01-07[PATCH] devpts/inode.c: make one struct staticAdrian Bunk
The patch below makes struct devpts_file_inode_operations in fs/devpts/inode.c static. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-01-04[PATCH] Sync in core time granuality with filesystemsAndi Kleen
This patch corrects a problem that was originally added with the nanosecond timestamps in stat patch. The problem is that some file systems don't have enough space in their on disk inode to save nanosecond timestamps, so they truncate the c/a/mtime to seconds when flushing an dirty node. In core the inode would have full jiffies granuality. This can be observed by programs as a timestamp that jumps backwards under specific loads when an inode is flushed and then reloaded from disk. The problem was already known when the original patch went in, but it wasn't deemed important enough at that time. So far there has been only one report of it causing problems. Now Tridge is worried that it will break running Excel over samba4 because Excel seems to do very anal timestamp checking and samba4 will supply 100ns timestamps over the network. This patch solves it by putting the time resolution into the superblock of a fs and always rounding the in core timestamps to that granuality. This also supercedes some previous ext2/3 hacks to flush the inode less often when only the subsecond timestamp changes. I tried to keep the overhead low, in particular it tries to keep divisions out of fast paths as far as possible. The patch is quite big but 99% of it is just relatively straight forward search'n'replace in a lot of fs. Unconverted filesystems will default to a 1ns granuality, but may still show the problem if they continue to use CURRENT_TIME. I converted all in tree fs. One possible future extension of this would be to have two time granualities per superblock - one that specifies the visible resolution, and the other to specify how often timestamps should be flushed to disk, which could be tuned with a mount option per fs (e.g. often m/atimes don't need to be flushed every second). Would be easy to do as an addon if someone is interested. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-10-18[PATCH] xattr consolidation v3 - devptsJames Morris
This patch updates the devpts xattr handler code to the generic xattr API, also adds a GPL notice, author and copyright details. Signed-off-by: James Morris <jmorris@redhat.com> Signed-off-by: Stephen Smalley <sds@epoch.ncsc.mil> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-08-30[PATCH] Prevent memory leak in devptsOlaf Kirch
There is a dentry refcount leak in devpts_get_tty. struct tty_struct *devpts_get_tty(int number) { struct dentry *dentry = get_node(number); struct tty_struct *tty; tty = (IS_ERR(dentry) || !dentry->d_inode) ? NULL : dentry->d_inode->u.generic_ip; up(&devpts_root->d_inode->i_sem); return tty; } The get_node function does a lookup on /dev/pts/<number> and returns the dentry, taking a reference. We should dput the dentry after extracting the tty pointer. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-02-22[PATCH] dynamic pty allocationAndrew Morton
From: "H. Peter Anvin" <hpa@transmeta.com> Remove the limit of 2048 pty's - allocate them on demand up to the 12:20 dev_t limit: a million.
2004-01-20[PATCH] Move XATTR_SECURITY_PREFIX macro to common locationAndrew Morton
From: Chris Wright <chrisw@osdl.org> Move the XATTR_SECURITY_PREFIX macro to the xattr.h header so that it's in a common location. (Acked by Stephen Smalley)
2003-07-25[PATCH] fs/ Makefile cleanupSam Ravnborg
Simplify Makefiles in fs/ by utilising the new syntax for composite objects. The new syntax allowed a couple of ifeq ($(CONFIG_FOO),y) to be deleted, resulting in more readable Makefiles. No functional changes introduced.
2003-05-26[PATCH] Cleanup in fs_devpts_inode.cRusty Russell
From: René Scharfe <l.s.r@web.de> This un-complicates a small piece of code of the dev/pts filesystem and decreases the size of the object code by 8 bytes for my build. Yay! :)
2003-05-25[PATCH] change get_sb prototypeAndries E. Brouwer
(i) The prototypes for free_vfsmnt(), alloc_vfsmnt(), do_kern_mount() so far occurred in several individual c files. Now they are in <linux/mount.h>. (ii) do_kern_mount() has a third argument name that is typically a constant. It is called with "rootfs", "nfsd", type->name, "capifs", "usbdevfs", "binfmt_misc" etc. So, it should have a prototype that expresses this: do_kern_mount(const char *fstype, int flags, const char *name, void *data); This makes the ugly cast - return do_kern_mount(type->name, 0, (char *)type->name, NULL); + return do_kern_mount(type->name, 0, type->name, NULL); go away. Now do_kern_mount() calls type->get_sb(), so also get_sb() must have a const third argument. That is what the patch below does. If I am not mistaken, precisely two filesystems do not treat this argument as a constant, namely afs and cifs. A separate patch gives some cleanup there.
2003-05-25[PATCH] devpts xattr handler for security labelsAndrew Morton
From: Stephen Smalley <sds@epoch.ncsc.mil> This patch against 2.5.69-bk adds an xattr handler for security labels to devpts and corresponding hooks to the LSM API to support conversion between xattr values and the security labels stored in the inode security field by the security module. This allows userspace to get and set the security labels on devpts nodes, e.g. so that sshd can set the security label for the pty using setxattr, just as sshd already sets the ownership using chown. SELinux uses this support to protect the pty in accordance with the user process' security label. The changes to the LSM API are general and should be re-useable by xattr handlers in other pseudo filesystems to support similar security labeling. The xattr handler for devpts includes the same generic framework as in ext[23], so handlers for other kinds of attributes can be added easily in the future.
2003-01-14[PATCH] remove obsolete kern_umount alias for mntputChristoph Hellwig
2002-12-14[PATCH] Remove Rules.make from Makefiles (3/3)Brian Gerst
Makefiles no longer need to include Rules.make, which is currently an empty file. This patch removes it from the remaining Makefiles, and removes the empty Rules.make file.
2002-11-16[PATCH] include mount.h explicitly were neededChristoph Hellwig
This is a preparation to get rid of the implicit includes in dcache.h and fs_struct.h.
2002-09-29[PATCH] C99 designated initializer patch for fs/devpts.Art Haas
2002-07-04[PATCH] devpts cleanupAlexander Viro
* devpts "upcalls" eliminated. * instead of playing games with revalidation we simply use ramfs-style tree and kill dentries upon devpts_pty_kill(). That allows to get rid of a lot of code in fs/devpts/*.c. * devpts_fs.h cleaned up. * devpts/root.c and devpts/devpts_i.h removed. * array of pointers to devpts inodes killed; with ramfs-style tree it's not needed anymore. * devpts/inode.c cleaned up. * devpts_pty_new() used to get mk_kdev() only to convert it to dev_t (hardly a surprise, since it's mknod() in disguise). Now it gets dev_t as an argument.
2002-05-24kbuild: Use standard multi-part object declaration in fs/*Kai Germaschewski
2002-05-19[PATCH] get rid of <linux/locks.h>Christoph Hellwig
The lock.h header contained some hand-crafted lcoking routines from the pre-SMP days. In 2.5 only lock_super/unlock_super are left, guarded by a number of completly unrelated (!) includes. This patch moves lock_super/unlock_super to fs.h, which defined struct super_block that is needed for those to operate it, removes locks.h and updates all caller to not include it and add the missing, previously nested includes where needed.
2002-04-30[PATCH] shift BKL out of vfs_readdirDave Hansen
This patch takes the BKL out of vfs_readdir() and moves it into the individual filesystems, all 35 of them. I have the feeling that this wasn't done before because there are a lot of these to change and it was a pain to find them all. I definitely got all of those that were defined in the in the structure declaration like this "readdir: fs_readdir;" vxfs_readdir was assigned strangely, but I found it anyway. I also left devfs out of this one. Richard seems confident that devfs has no need for the BKL.
2002-04-02strtok -> strsep fixesLinus Torvalds
2002-04-01[PATCH] ext2_fill_super breakageAndrew Morton
In 2.5.7 there is a thinko in the allocation and initialisation of the fs-private superblock for ext2. It's passing the wrong type to the sizeof operator (which of course gives the wrong size) when allocating and clearing the memory. Lesson for the day: this is one of the reasons why this idiom: some_type *p; p = malloc(sizeof(*p)); ... memset(p, 0, sizeof(*p)); is preferable to some_type *p; p = malloc(sizeof(some_type)); ... memset(p, 0, sizeof(some_type)); I checked the other filesystems. They're OK (but idiomatically impure). I've added a couple of defensive memsets where they were missing.
2002-03-14[PATCH] fs/libfs.cAlexander Viro
Linus, I've taken a bunch of common methods into fs/libfs.c and killed the (duplicated) instances in filesystems. There will be more - ideally I'd like to get a library that would make writing small filesystems trivial.
2002-03-10[PATCH] (3/4) ->kill_sb() switchoverAlexander Viro
The rest of nodev filesystems switched.
2002-02-11[PATCH] BKL shifted into ->lookup()Alexander Viro
OK, here comes: ->lookup() had lost BKL, all in-tree instances of ->lookup() converted. I'm adding Documentation/filesystems/porting - with the list of API changes since 2.4. Are you OK with that format? (and yes, this sucker is *post*-compile ;-)
2002-02-06[PATCH] (2/6) more ->get_sb() stuffAlexander Viro
devpts converted.
2002-02-05v2.5.2.1.1 -> v2.5.2.2Linus Torvalds
- Al Viro: fix new_inode() allocation - undo initcall update - cciss driver update
2002-02-05v2.5.1.11 -> v2.5.2Linus Torvalds
- Matt Domsch: combine common crc32 library - Pete Zaitcev: ymfpci update - Davide Libenzi: scheduler improvements - Al Viro: almost there: "struct block_device *" everywhere - Richard Gooch: devfs cpqarray update, race fix - Rusty Russell: PATH_MAX should include the final '0' count - David Miller: various random updates (mainly net and sparc)
2002-02-04v2.4.10.1 -> v2.4.10.2Linus Torvalds
- me/Al Viro: fix bdget() oops with block device modules that don't clean up after they exit - Alan Cox: continued merging (drivers, license tags) - David Miller: sparc update, network fixes - Christoph Hellwig: work around broken drivers that add a gendisk more than once - Jakub Jelinek: handle more ELF loading special cases - Trond Myklebust: NFS client and lockd reclaimer cleanups/fixes - Greg KH: USB updates - Mikael Pettersson: sparate out local APIC / IO-APIC config options
2002-02-04v2.4.3.3 -> v2.4.3.4Linus Torvalds
- David Miller: sparc rw semaphores moved over - Alan Cox: yet more resyncs - NIIBE Yutaka: Super-H driver update - David Howells: more rw-sem cleanups, updates - USB updates - Al Viro: filesystem init cleanup
2002-02-04v2.4.1.2 -> v2.4.1.3Linus Torvalds
- Jens: better ordering of requests when unable to merge - Neil Brown: make md work as a module again (we cannot autodetect in modules, not enough background information) - Neil Brown: raid5 SMP locking cleanups - Neil Brown: nfsd: handle Irix NFS clients named pipe behavior and dentry leak fix - maestro3 shutdown fix - fix dcache hash calculation that could cause bad hashes under certain circumstances (Dean Gaudet) - David Miller: networking and sparc updates - Jeff Garzik: include file cleanups - Andy Grover: ACPI update - Coda-fs error return fixes - rth: alpha Jensen update
2002-02-04Import changesetLinus Torvalds