1. 11 3月, 2009 1 次提交
  2. 06 1月, 2009 1 次提交
  3. 03 1月, 2009 10 次提交
    • D
      CRED: Wrap task credential accesses in the devpts filesystem · d0eafc7d
      David Howells 提交于
      Wrap access to task credentials so that they can be separated more easily from
      the task_struct during the introduction of COW creds.
      
      Change most current->(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().
      
      Change some task->e?[ug]id to task_e?[ug]id().  In some places it makes more
      sense to use RCU directly rather than a convenient wrapper; these will be
      addressed by later patches.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d0eafc7d
    • A
      devpts: fix unused function warning · 8c056e5b
      Andrew Morton 提交于
      fs/devpts/inode.c:324: warning: 'compare_init_pts_sb' defined but not used
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8c056e5b
    • A
      devpts: Coding style clean up · 835aa440
      Alan Cox 提交于
      Just nail the oddments now while this code is being touched
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      835aa440
    • S
      Enable multiple instances of devpts · 2a1b2dc0
      Sukadev Bhattiprolu 提交于
      To support containers, allow multiple instances of devpts filesystem, such
      that indices of ptys allocated in one instance are independent of ptys
      allocated in other instances of devpts.
      
      But to preserve backward compatibility, enable this support for multiple
      instances only if:
      
      	- CONFIG_DEVPTS_MULTIPLE_INSTANCES is set to Y, and
      	- '-o newinstance' mount option is specified while mounting devpts
      
      To use multi-instance mount, a container startup script could:
      
      	$ ns_exec -cm /bin/bash
      	$ umount /dev/pts
      	$ mount -t devpts -o newinstance lxcpts /dev/pts
      	$ mount -o bind /dev/pts/ptmx /dev/ptmx
      	$ /usr/sbin/sshd -p 1234
      
      where 'ns_exec -cm /bin/bash' is calls clone() with CLONE_NEWNS flag and execs
      /bin/bash in the child process. A pty created by the sshd is not visible in
      the original mount of /dev/pts.
      
      USER-SPACE-IMPACT:
      	- See Documentation/fs/devpts.txt (included in next patch) for user-
      	  space impact in multi-instance and mixed-mode operation.
      TODO:
      	- Update mount(8), pts(4) man pages. Highlight impact of not
      	  redirecting /dev/ptmx to /dev/pts/ptmx after a multi-instance mount.
      
      Changelog[v6]:
      	- [Dave Hansen] Use new get_init_pts_sb() interface
      	- [Serge Hallyn] Don't bother displaying 'newinstance' in show_options
      	- [Serge Hallyn] Use macros (PARSE_REMOUNT/PARSE_MOUNT) instead of 0/1.
      	- [Serge Hallyn] Check error return from get_sb_single() (now
      	  get_init_pts_sb())
      	- devpts_pty_kill(): don't dput error dentries
      
      Changelog[v5]:
      	- Move get_sb_ref() definition to earlier patch
      	- Move usage info to Documentation/filesystems/devpts.txt (next patch)
      	- Make ptmx node even in init_pts_ns, now that default mode is 0000
      	  (defined in earlier patch, enabled here).
      	- Cache ptmx dentry and use to update mode during remount
      	  (defined in earlier patch, enabled here).
      	- Bugfix: explicitly ignore newinstance on remount (if newinstance was
      	  specified on remount of initial mount, it would be ignored but
      	  /proc/mounts would imply that the option was set)
      
      Changelog[v4]:
      
      	- Update patch description to address H. Peter Anvin's comments
      	- Consolidate multi-instance mode code under new config token,
      	  CONFIG_DEVPTS_MULTIPLE_INSTANCE.
      	- Move usage-details from patch description to
      	  Documentation/fs/devpts.txt
      
      Changelog[v3]:
      	- Rename new mount option to 'newinstance'
      	- Create ptmx nodes only in 'newinstance' mounts
      	- Bugfix: parse_mount_options() modifies @data but since we need to
      	  parse the @data twice (once in devpts_get_sb() and once during
      	  do_remount_sb()), parse a local copy of @data in devpts_get_sb().
      	  (restructured code in devpts_get_sb() to fix this)
      
      Changelog[v2]:
      	- Support both single-mount and multiple-mount semantics and
      	  provide '-onewmnt' option to select the semantics.
      Signed-off-by: NSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2a1b2dc0
    • S
      Define get_init_pts_sb() · d4076ac5
      Sukadev Bhattiprolu 提交于
      See comments in the function header for details. The new interface will
      be used in a follow-on patch.
      
      Changelog [v2]:
      	[Dave Hansen] Replace get_sb_ref() in fs/super.c with get_init_pts_sb()
      	and make the new interface private to devpts
      Signed-off-by: NSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d4076ac5
    • S
      Define mknod_ptmx() · 1f8f1e29
      Sukadev Bhattiprolu 提交于
      /dev/ptmx is closely tied to the devpts filesystem. An open of /dev/ptmx,
      allocates the next pty index and the associated device shows up in the
      devpts fs as /dev/pts/n.
      
      Wih multiple instancs of devpts filesystem, during an open of /dev/ptmx
      we would be unable to determine which instance of the devpts is being
      accessed.
      
      So we move the 'ptmx' node into /dev/pts and use the inode of the 'ptmx'
      node to identify the superblock and hence the devpts instance.  This patch
      adds ability for the kernel to internally create the [ptmx, c, 5:2] device
      when mounting devpts filesystem.  Since the ptmx node in devpts is new and
      may surprise some userspace scripts, the default permissions for the new
      node is 0000.  These permissions can be changed either using chmod or by
      remounting with the new '-o ptmxmode=0666' mount option.
      
      Changelog[v5]:
      	- [Serge Hallyn bugfix]: Letting new_inode() assign inode number to
      	  ptmx can collide with hand-assigning inode numbers to ptys. So,
      	  hand-assign specific inode number to ptmx node also.
      	- [Serge Hallyn]: Maybe safer to grab root dentry mutex while creating
      	  ptmx node
      	- [Bugfix with Serge Hallyn] Replace lookup_one_len() in mknod_ptmx()
      	  wih d_alloc_name() (lookup during ->get_sb() locks up system). To
      	  simplify patchset, fold the ptmx_dentry patch into this.
      
      Changelog[v4]:
      	- Change default permissions of pts/ptmx node to 0000.
      	- Move code for ptmxmode under #ifdef CONFIG_DEVPTS_MULTIPLE_INSTANCES.
      
      Changelog[v3]:
      	- Rename ptmx_mode to ptmxmode (for consistency with 'newinstance')
      
      Changelog[v2]:
      	- [H. Peter Anvin] Remove mknod() system call support and create the
      	  ptmx node internally.
      
      Changelog[v1]:
      	- Earlier version of this patch enabled creating /dev/pts/tty as
      	  well. As pointed out by Al Viro and H. Peter Anvin, that is not
      	  really necessary.
      Signed-off-by: NSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1f8f1e29
    • S
      Extract option parsing to new function · 53af8ee4
      Sukadev Bhattiprolu 提交于
      Move code to parse mount options into a separate function so it can
      (later) be shared between mount and remount operations.
      Signed-off-by: NSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      53af8ee4
    • S
      Per-mount 'config' object · 31af0abb
      Sukadev Bhattiprolu 提交于
      With support for multiple mounts of devpts, the 'config' structure really
      represents per-mount options rather than config parameters. Rename 'config'
      structure to 'pts_mount_opts' and store it in the super-block.
      Signed-off-by: NSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      31af0abb
    • S
      Per-mount allocated_ptys · e76b7c01
      Sukadev Bhattiprolu 提交于
      To enable multiple mounts of devpts, 'allocated_ptys' must be a per-mount
      variable rather than a global variable.  Move 'allocated_ptys' into the
      super_block's s_fs_info.
      
      Changelog[v2]:
      	Define and use DEVPTS_SB() wrapper.
      Signed-off-by: NSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e76b7c01
    • S
      Remove devpts_root global · 59e55e6c
      Sukadev Bhattiprolu 提交于
      Remove the 'devpts_root' global variable and find the root dentry using
      the super_block. The super-block can be found from the device inode, using
      the new wrapper, pts_sb_from_inode().
      
      Changelog: This patch is based on an earlier patchset from Serge Hallyn
      	   and Matt Helsley.
      Signed-off-by: NSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      59e55e6c
  4. 14 11月, 2008 1 次提交
  5. 14 10月, 2008 5 次提交
  6. 01 8月, 2008 1 次提交
  7. 30 4月, 2008 1 次提交
  8. 09 2月, 2008 1 次提交
  9. 09 5月, 2007 1 次提交
  10. 13 2月, 2007 1 次提交
  11. 27 9月, 2006 2 次提交
    • T
      [PATCH] inode-diet: Eliminate i_blksize from the inode structure · ba52de12
      Theodore 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: N"Theodore Ts'o" <tytso@mit.edu>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ba52de12
    • T
      [PATCH] inode_diet: Replace inode.u.generic_ip with inode.i_private · 8e18e294
      Theodore 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: N"Theodore Ts'o" <tytso@mit.edu>
      Signed-off-by: NJudith Lebzelter <judith@osdl.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8e18e294
  12. 23 6月, 2006 1 次提交
    • D
      [PATCH] VFS: Permit filesystem to override root dentry on mount · 454e2398
      David 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: NDavid Howells <dhowells@redhat.com>
      Acked-by: NAl Viro <viro@zeniv.linux.org.uk>
      Cc: Nathan Scott <nathans@sgi.com>
      Cc: Roland Dreier <rolandd@cisco.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      454e2398
  13. 23 3月, 2006 1 次提交
  14. 10 1月, 2006 1 次提交
  15. 05 9月, 2005 1 次提交
    • S
      [PATCH] Generic VFS fallback for security xattrs · f549d6c1
      Stephen 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: NStephen Smalley <sds@tycho.nsa.gov>
      Acked-by: NJames Morris <jmorris@namei.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f549d6c1
  16. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4