Re: [PATCH 4/5] swsusp: fix error paths in snapshot_open

Pavel Machek
2007-03-20T22:16:25Z

Hi!

> We forget to increase device_available if there's an error in
> snapshot_open(), so the snapshot device cannot be open at all after
> snapshot_open() has returned an error.

Actually, this should go to the beggining of series, as it is
(non-critical) bugfix.

Pavel
> @@ -49,12 +49,14 @@ static int snapshot_open(struct inode *i
> if (!atomic_add_unless(&device_available, -1, 0))
> return -EBUSY;
>
> - if ((filp->f_flags & O_ACCMODE) == O_RDWR)
> + if ((filp->f_flags & O_ACCMODE) == O_RDWR) {
> + atomic_inc(&device_available);
> return -ENOSYS;
> -
> - if(create_basic_memory_bitmaps())
> + }
> + if(create_basic_memory_bitmaps()) {
> + atomic_inc(&device_available);
> return -ENOMEM;
> -
> + }
> nonseekable_open(inode, filp);
> data = &snapshot_state;
> filp->private_data = data;

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html