1. 06 1月, 2009 21 次提交
    • N
      mm lockless pagecache barrier fix · e8c82c2e
      Nick Piggin 提交于
      An XFS workload showed up a bug in the lockless pagecache patch. Basically it
      would go into an "infinite" loop, although it would sometimes be able to break
      out of the loop! The reason is a missing compiler barrier in the "increment
      reference count unless it was zero" case of the lockless pagecache protocol in
      the gang lookup functions.
      
      This would cause the compiler to use a cached value of struct page pointer to
      retry the operation with, rather than reload it. So the page might have been
      removed from pagecache and freed (refcount==0) but the lookup would not correctly
      notice the page is no longer in pagecache, and keep attempting to increment the
      refcount and failing, until the page gets reallocated for something else. This
      isn't a data corruption because the condition will be detected if the page has
      been reallocated. However it can result in a lockup.
      
      Linus points out that ACCESS_ONCE is also required in that pointer load, even
      if it's absence is not causing a bug on our particular build. The most general
      way to solve this is just to put an rcu_dereference in radix_tree_deref_slot.
      
      Assembly of find_get_pages,
      before:
      .L220:
              movq    (%rbx), %rax    #* ivtmp.1162, tmp82
              movq    (%rax), %rdi    #, prephitmp.1149
      .L218:
              testb   $1, %dil        #, prephitmp.1149
              jne     .L217   #,
              testq   %rdi, %rdi      # prephitmp.1149
              je      .L203   #,
              cmpq    $-1, %rdi       #, prephitmp.1149
              je      .L217   #,
              movl    8(%rdi), %esi   # <variable>._count.counter, c
              testl   %esi, %esi      # c
              je      .L218   #,
      
      after:
      .L212:
              movq    (%rbx), %rax    #* ivtmp.1109, tmp81
              movq    (%rax), %rdi    #, ret
              testb   $1, %dil        #, ret
              jne     .L211   #,
              testq   %rdi, %rdi      # ret
              je      .L197   #,
              cmpq    $-1, %rdi       #, ret
              je      .L211   #,
              movl    8(%rdi), %esi   # <variable>._count.counter, c
              testl   %esi, %esi      # c
              je      .L212   #,
      
      (notice the obvious infinite loop in the first example, if page->count remains 0)
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Reviewed-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e8c82c2e
    • M
      inotify: fix type errors in interfaces · 4ae8978c
      Michael Kerrisk 提交于
      The problems lie in the types used for some inotify interfaces, both at the kernel level and at the glibc level. This mail addresses the kernel problem. I will follow up with some suggestions for glibc changes.
      
      For the sys_inotify_rm_watch() interface, the type of the 'wd' argument is
      currently 'u32', it should be '__s32' .  That is Robert's suggestion, and
      is consistent with the other declarations of watch descriptors in the
      kernel source, in particular, the inotify_event structure in
      include/linux/inotify.h:
      
      struct inotify_event {
              __s32           wd;             /* watch descriptor */
              __u32           mask;           /* watch mask */
              __u32           cookie;         /* cookie to synchronize two events */
              __u32           len;            /* length (including nulls) of name */
              char            name[0];        /* stub for possible name */
      };
      
      The patch makes the changes needed for inotify_rm_watch().
      Signed-off-by: NMichael Kerrisk <mtk.manpages@googlemail.com>
      Cc: Robert Love <rlove@google.com>
      Cc: Vegard Nossum <vegard.nossum@gmail.com>
      Cc: Ulrich Drepper <drepper@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      4ae8978c
    • C
      add a vfs_fsync helper · 4c728ef5
      Christoph Hellwig 提交于
      Fsync currently has a fdatawrite/fdatawait pair around the method call,
      and a mutex_lock/unlock of the inode mutex.  All callers of fsync have
      to duplicate this, but we have a few and most of them don't quite get
      it right.  This patch adds a new vfs_fsync that takes care of this.
      It's a little more complicated as usual as ->fsync might get a NULL file
      pointer and just a dentry from nfsd, but otherwise gets afile and we
      want to take the mapping and file operations from it when it is there.
      
      Notes on the fsync callers:
      
       - ecryptfs wasn't calling filemap_fdatawrite / filemap_fdatawait on the
         	lower file
       - coda wasn't calling filemap_fdatawrite / filemap_fdatawait on the host
      	file, and returning 0 when ->fsync was missing
       - shm wasn't calling either filemap_fdatawrite / filemap_fdatawait nor
         taking i_mutex.  Now given that shared memory doesn't have disk
         backing not doing anything in fsync seems fine and I left it out of
         the vfs_fsync conversion for now, but in that case we might just
         not pass it through to the lower file at all but just call the no-op
         simple_sync_file directly.
      
      [and now actually export vfs_fsync]
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      4c728ef5
    • J
      jbd2: Add buffer triggers · e06c8227
      Joel Becker 提交于
      Filesystems often to do compute intensive operation on some
      metadata.  If this operation is repeated many times, it can be very
      expensive.  It would be much nicer if the operation could be performed
      once before a buffer goes to disk.
      
      This adds triggers to jbd2 buffer heads.  Just before writing a metadata
      buffer to the journal, jbd2 will optionally call a commit trigger associated
      with the buffer.  If the journal is aborted, an abort trigger will be
      called on any dirty buffers as they are dropped from pending
      transactions.
      
      ocfs2 will use this feature.
      
      Initially I tried to come up with a more generic trigger that could be
      used for non-buffer-related events like transaction completion.  It
      doesn't tie nicely, because the information a buffer trigger needs
      (specific to a journal_head) isn't the same as what a transaction
      trigger needs (specific to a tranaction_t or perhaps journal_t).  So I
      implemented a buffer set, with the understanding that
      journal/transaction wide triggers should be implemented separately.
      
      There is only one trigger set allowed per buffer.  I can't think of any
      reason to attach more than one set.  Contrast this with a journal or
      transaction in which multiple places may want to watch the entire
      transaction separately.
      
      The trigger sets are considered static allocation from the jbd2
      perspective.  ocfs2 will just have one trigger set per block type,
      setting the same set on every bh of the same type.
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      e06c8227
    • J
      quota: Export dquot_alloc() and dquot_destroy() functions · 7d9056ba
      Jan Kara 提交于
      These are default functions for creating and destroying quota structures
      and they should be used from filesystems.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      7d9056ba
    • J
      quota: Unexport dqblk_v1.h and dqblk_v2.h · 5cd9d5bb
      Jan Kara 提交于
      Unexport header files dqblk_v[12].h since except for quota format ID they
      don't contain information userspace should be interested in. Move ID
      definitions to quota.h.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      5cd9d5bb
    • M
      jbd2: Add BH_JBDPrivateStart · e97fcd95
      Mark Fasheh 提交于
      Add this so that file systems using JBD2 can safely allocate unused b_state
      bits.
      
      In this case, we add it so that Ocfs2 can define a single bit for tracking
      the validation state of a buffer.
      Acked-by: N"Theodore Ts'o" <tytso@mit.edu>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      e97fcd95
    • J
      quota: Implement function for scanning active dquots · 12c77527
      Jan Kara 提交于
      OCFS2 needs to scan all active dquots once in a while and sync quota
      information among cluster nodes. Provide a helper function for it so
      that it does not have to reimplement internally a list which VFS
      already has. Moreover this function is probably going to be useful
      for other clustered filesystems if they decide to use VFS quotas.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      12c77527
    • J
      quota: Add helpers to allow ocfs2 specific quota initialization, freeing and recovery · 3d9ea253
      Jan Kara 提交于
      OCFS2 needs to peek whether quota structure is already in memory so
      that it can avoid expensive cluster locking in that case. Similarly
      when freeing dquots, it checks whether it is the last quota structure
      user or not. Finally, it needs to get reference to dquot structure for
      specified id and quota type when recovering quota file after crash.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      3d9ea253
    • J
      quota: Update version number · 571b46e4
      Jan Kara 提交于
      Increase reported version number of quota support since quota core has changed
      significantly. Also remove __DQUOT_NUM_VERSION__ since nobody uses it.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      571b46e4
    • J
      quota: Keep which entries were set by SETQUOTA quotactl · 4d59bce4
      Jan Kara 提交于
      Quota in a clustered environment needs to synchronize quota information
      among cluster nodes. This means we have to occasionally update some
      information in dquot from disk / network. On the other hand we have to
      be careful not to overwrite changes administrator did via SETQUOTA.
      So indicate in dquot->dq_flags which entries have been set by SETQUOTA
      and quota format can clear these flags when it properly propagated
      the changes.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      4d59bce4
    • J
      quota: Allow negative usage of space and inodes · db49d2df
      Jan Kara 提交于
      For clustered filesystems, it can happen that space / inode usage goes
      negative temporarily (because some node is allocating another node
      is freeing and they are not completely in sync). So let quota code
      allow this and change qsize_t so a signed type so that we don't
      underflow the variables.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      db49d2df
    • J
      quota: Convert union in mem_dqinfo to a pointer · e3d4d56b
      Jan Kara 提交于
      Coming quota support for OCFS2 is going to need quite a bit
      of additional per-sb quota information. Moreover having fs.h
      include all the types needed for this structure would be a
      pain in the a**. So remove the union from mem_dqinfo and add
      a private pointer for filesystem's use.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      e3d4d56b
    • J
      quota: Split off quota tree handling into a separate file · 1ccd14b9
      Jan Kara 提交于
      There is going to be a new version of quota format having 64-bit
      quota limits and a new quota format for OCFS2. They are both
      going to use the same tree structure as VFSv0 quota format. So
      split out tree handling into a separate file and make size of
      leaf blocks, amount of space usable in each block (needed for
      checksumming) and structures contained in them configurable
      so that the code can be shared.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      1ccd14b9
    • J
      quota: Move quotaio_v[12].h from include/linux/ to fs/ · cf770c13
      Jan Kara 提交于
      Since these include files are used only by implementation of quota formats,
      there's no need to have them in include/linux/.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      cf770c13
    • J
      quota: Introduce DQUOT_QUOTA_SYS_FILE flag · ca785ec6
      Jan Kara 提交于
      If filesystem can handle quota files as system files hidden from users, we can
      skip a lot of cache invalidation, syncing, inode flags setting etc. when
      turning quotas on, off and quota_sync. Allow filesystem to indicate that it is
      hiding quota files from users by DQUOT_QUOTA_SYS_FILE flag.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      ca785ec6
    • J
      quota: Remove compatibility function sb_any_quota_enabled() · dcb30695
      Jan Kara 提交于
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      dcb30695
    • J
      quota: Allow to separately enable quota accounting and enforcing limits · f55abc0f
      Jan Kara 提交于
      Split DQUOT_USR_ENABLED (and DQUOT_GRP_ENABLED) into DQUOT_USR_USAGE_ENABLED
      and DQUOT_USR_LIMITS_ENABLED. This way we are able to separately enable /
      disable whether we should:
      1) ignore quotas completely
      2) just keep uptodate information about usage
      3) actually enforce quota limits
      
      This is going to be useful when quota is treated as filesystem metadata - we
      then want to keep quota information uptodate all the time and just enable /
      disable limits enforcement.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      f55abc0f
    • J
      quota: Make _SUSPENDED just a flag · e4bc7b4b
      Jan Kara 提交于
      Upto now, DQUOT_USR_SUSPENDED behaved like a state - i.e., either quota
      was enabled or suspended or none. Now allowed states are 0, ENABLED,
      ENABLED | SUSPENDED. This will be useful later when we implement separate
      enabling of quota usage tracking and limits enforcement because we need to
      keep track of a state which has been suspended.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      e4bc7b4b
    • J
      quota: Increase size of variables for limits and inode usage · 12095460
      Jan Kara 提交于
      So far quota was fine with quota block limits and inode limits/numbers in
      a 32-bit type. Now with rapid increase in storage sizes there are coming
      requests to be able to handle quota limits above 4TB / more that 2^32 inodes.
      So bump up sizes of types in mem_dqblk structure to 64-bits to be able to
      handle this. Also update inode allocation / checking functions to use qsize_t
      and make global structure keep quota limits in bytes so that things are
      consistent.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      12095460
    • J
      quota: Add callbacks for allocating and destroying dquot structures · 74f783af
      Jan Kara 提交于
      Some filesystems would like to keep private information together with each
      dquot. Add callbacks alloc_dquot and destroy_dquot allowing filesystem to
      allocate larger dquots from their private slab in a similar fashion we
      currently allocate inodes.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      74f783af
  2. 05 1月, 2009 18 次提交
    • S
      GFS2: Support for FIEMAP ioctl · e9079cce
      Steven Whitehouse 提交于
      This patch implements the FIEMAP ioctl for GFS2. We can use the generic
      code (aside from a lock order issue, solved as per Ted Tso's suggestion)
      for which I've introduced a new variant of the generic function. We also
      have one exception to deal with, namely stuffed files, so we do that
      "by hand", setting all the required flags.
      
      This has been tested with a modified (I could only find an old version) of
      Eric's test program, and appears to work correctly.
      
      This patch does not currently support FIEMAP of xattrs, but the plan is to add
      that feature at some future point.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      Cc: Theodore Tso <tytso@mit.edu>
      Cc: Eric Sandeen <sandeen@redhat.com>
      e9079cce
    • H
      gro: Add page frag support · 5d38a079
      Herbert Xu 提交于
      This patch allows GRO to merge page frags (skb_shinfo(skb)->frags)
      in one skb, rather than using the less efficient frag_list.
      
      It also adds a new interface, napi_gro_frags to allow drivers
      to inject page frags directly into the stack without allocating
      an skb.  This is intended to be the GRO equivalent for LRO's
      lro_receive_frags interface.
      
      The existing GSO interface can already handle page frags with
      or without an appended frag_list so nothing needs to be changed
      there.
      
      The merging itself is rather simple.  We store any new frag entries
      after the last existing entry, without checking whether the first
      new entry can be merged with the last existing entry.  Making this
      check would actually be easy but since no existing driver can
      produce contiguous frags anyway it would just be mental masturbation.
      
      If the total number of entries would exceed the capacity of a
      single skb, we simply resort to using frag_list as we do now.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5d38a079
    • A
      rtc: add alarm/update irq interfaces · 099e6576
      Alessandro Zummo 提交于
      Add standard interfaces for alarm/update irqs enabling.  Drivers are no
      more required to implement equivalent ioctl code as rtc-dev will provide
      it.
      
      UIE emulation should now be handled correctly and will work even for those
      RTC drivers who cannot be configured to do both UIE and AIE.
      Signed-off-by: NAlessandro Zummo <a.zummo@towertech.it>
      Cc: David Brownell <david-b@pacbell.net>
      Cc: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      099e6576
    • N
      fs: symlink write_begin allocation context fix · 54566b2c
      Nick Piggin 提交于
      With the write_begin/write_end aops, page_symlink was broken because it
      could no longer pass a GFP_NOFS type mask into the point where the
      allocations happened.  They are done in write_begin, which would always
      assume that the filesystem can be entered from reclaim.  This bug could
      cause filesystem deadlocks.
      
      The funny thing with having a gfp_t mask there is that it doesn't really
      allow the caller to arbitrarily tinker with the context in which it can be
      called.  It couldn't ever be GFP_ATOMIC, for example, because it needs to
      take the page lock.  The only thing any callers care about is __GFP_FS
      anyway, so turn that into a single flag.
      
      Add a new flag for write_begin, AOP_FLAG_NOFS.  Filesystems can now act on
      this flag in their write_begin function.  Change __grab_cache_page to
      accept a nofs argument as well, to honour that flag (while we're there,
      change the name to grab_cache_page_write_begin which is more instructive
      and does away with random leading underscores).
      
      This is really a more flexible way to go in the end anyway -- if a
      filesystem happens to want any extra allocations aside from the pagecache
      ones in ints write_begin function, it may now use GFP_KERNEL (rather than
      GFP_NOFS) for common case allocations (eg.  ocfs2_alloc_write_ctxt, for a
      random example).
      
      [kosaki.motohiro@jp.fujitsu.com: fix ubifs]
      [kosaki.motohiro@jp.fujitsu.com: fix fuse]
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Reviewed-by: NKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: <stable@kernel.org>		[2.6.28.x]
      Signed-off-by: NKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      [ Cleaned up the calling convention: just pass in the AOP flags
        untouched to the grab_cache_page_write_begin() function.  That
        just simplifies everybody, and may even allow future expansion of the
        logic.   - Linus ]
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      54566b2c
    • P
      fs: introduce bgl_lock_ptr() · c644f0e4
      Pekka Enberg 提交于
      As suggested by Andreas Dilger, introduce a bgl_lock_ptr() helper in
      <linux/blockgroup_lock.h> and add separate sb_bgl_lock() helpers to
      filesystem specific header files to break the hidden dependency to
      struct ext[234]_sb_info.
      
      Also, while at it, convert the macros to static inlines to try make up
      for all the times I broke Andrew Morton's tree.
      Acked-by: NAndreas Dilger <adilger@sun.com>
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c644f0e4
    • R
      spi.h uses/needs device.h · 0a30c5ce
      Randy Dunlap 提交于
      Include header files as used/needed:
      
        In file included from drivers/leds/leds-dac124s085.c:16:
        include/linux/spi/spi.h:66: error: field 'dev' has incomplete type
        include/linux/spi/spi.h: In function 'to_spi_device':
        include/linux/spi/spi.h:100: warning: type defaults to 'int' in declaration of '__mptr'
        ...
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0a30c5ce
    • A
      audit: validate comparison operations, store them in sane form · 5af75d8d
      Al Viro 提交于
      Don't store the field->op in the messy (and very inconvenient for e.g.
      audit_comparator()) form; translate to dense set of values and do full
      validation of userland-submitted value while we are at it.
      
      ->audit_init_rule() and ->audit_match_rule() get new values now; in-tree
      instances updated.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      5af75d8d
    • A
      audit rules ordering, part 2 · e45aa212
      Al Viro 提交于
      Fix the actual rule listing; add per-type lists _not_ used for matching,
      with all exit,... sitting on one such list.  Simplifies "do something
      for all rules" logics, while we are at it...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      e45aa212
    • A
      fixing audit rule ordering mess, part 1 · 0590b933
      Al Viro 提交于
      Problem: ordering between the rules on exit chain is currently lost;
      all watch and inode rules are listed after everything else _and_
      exit,never on one kind doesn't stop exit,always on another from
      being matched.
      
      Solution: assign priorities to rules, keep track of the current
      highest-priority matching rule and its result (always/never).
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      0590b933
    • A
      sanitize audit_log_capset() · 57f71a0a
      Al Viro 提交于
      * no allocations
      * return void
      * don't duplicate checked for dummy context
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      57f71a0a
    • A
      sanitize audit_fd_pair() · 157cf649
      Al Viro 提交于
      * no allocations
      * return void
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      157cf649
    • A
      sanitize audit_mq_open() · 564f6993
      Al Viro 提交于
      * don't bother with allocations
      * don't do double copy_from_user()
      * don't duplicate parts of check for audit_dummy_context()
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      564f6993
    • A
      sanitize AUDIT_MQ_SENDRECV · c32c8af4
      Al Viro 提交于
      * logging the original value of *msg_prio in mq_timedreceive(2)
        is insane - the argument is write-only (i.e. syscall always
        ignores the original value and only overwrites it).
      * merge __audit_mq_timed{send,receive}
      * don't do copy_from_user() twice
      * don't mess with allocations in auditsc part
      * ... and don't bother checking !audit_enabled and !context in there -
        we'd already checked for audit_dummy_context().
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      c32c8af4
    • A
      sanitize audit_mq_notify() · 20114f71
      Al Viro 提交于
      * don't copy_from_user() twice
      * don't bother with allocations
      * don't duplicate parts of audit_dummy_context()
      * make it return void
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      20114f71
    • A
      sanitize audit_mq_getsetattr() · 7392906e
      Al Viro 提交于
      * get rid of allocations
      * make it return void
      * don't duplicate parts of audit_dummy_context()
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      7392906e
    • A
      sanitize audit_ipc_set_perm() · e816f370
      Al Viro 提交于
      * get rid of allocations
      * make it return void
      * simplify callers
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      e816f370
    • A
      sanitize audit_ipc_obj() · a33e6751
      Al Viro 提交于
      * get rid of allocations
      * make it return void
      * simplify callers
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      a33e6751
    • A
      sanitize audit_socketcall · f3298dc4
      Al Viro 提交于
      * don't bother with allocations
      * now that it can't fail, make it return void
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      f3298dc4
  3. 04 1月, 2009 1 次提交