lkml.org 
[lkml]   [2007]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [-mm patch] do_revoke error handling (was Re: 2.6.21-mm1)
    On Sun, May 06, 2007 at 12:23:15AM +0300, Pekka J Enberg wrote:
    > On Sat, May 05, 2007 at 01:49:55AM -0700, Andrew Morton wrote:
    > > >
    > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.21/2.6.21-mm1/
    > > >
    > > fs/revoke.c: In function 'do_revoke':
    > > fs/revoke.c:563: warning: 'details.fset' may be used uninitialized in this function
    > > fs/revoke.c:563: warning: 'details.restore_start' may be used uninitialized in this function
    >
    > On Sat, 5 May 2007, Frederik Deweerdt wrote:
    > > It seems that we should goto 'out_free_table' if an error happens in
    > > the mainloop. Otherwise 'details' is passed to restore_files() without
    > > being initialized.
    >
    > Good catch. The patch is wrong, though. Wwe must restore the file
    > descriptors in case revoke fails; otherwise we'll leave non-revoked files
    > hanging. The proper fix is to move initialization before the
    > do_each_thread() bit. Care to make a new patch, Frederik?
    >
    OK, thanks for the explanation. Here it is.
    Frederik

    Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com>

    diff --git a/fs/revoke.c b/fs/revoke.c
    index 1f2e3ef..86a2842 100644
    --- a/fs/revoke.c
    +++ b/fs/revoke.c
    @@ -597,6 +597,9 @@ static int do_revoke(struct inode *inode, struct file *to_exclude)
    goto retry;
    }

    + details.fset = fset;
    + details.restore_start = 0;
    +
    /*
    * First revoke the descriptors. After we are done, no one can start
    * new operations on them.
    @@ -625,9 +628,6 @@ static int do_revoke(struct inode *inode, struct file *to_exclude)
    if (err)
    goto out_restore;

    - details.fset = fset;
    - details.restore_start = 0;
    -
    /*
    * Now, revoke the files for good.
    */
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-05-05 23:51    [W:0.028 / U:29.940 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site