mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 08:33:17 +02:00
functionfs: don't bother with ffs->ref in ffs_data_{opened,closed}()
A reference is held by the superblock (it's dropped in ffs_kill_sb()) and filesystem will not get to ->kill_sb() while there are any opened files, TYVM... Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
fcb8985143
commit
fe47466282
|
|
@ -2128,7 +2128,6 @@ static void ffs_data_get(struct ffs_data *ffs)
|
|||
|
||||
static void ffs_data_opened(struct ffs_data *ffs)
|
||||
{
|
||||
refcount_inc(&ffs->ref);
|
||||
if (atomic_add_return(1, &ffs->opened) == 1 &&
|
||||
ffs->state == FFS_DEACTIVATED) {
|
||||
ffs->state = FFS_CLOSING;
|
||||
|
|
@ -2153,11 +2152,11 @@ static void ffs_data_put(struct ffs_data *ffs)
|
|||
|
||||
static void ffs_data_closed(struct ffs_data *ffs)
|
||||
{
|
||||
struct ffs_epfile *epfiles;
|
||||
unsigned long flags;
|
||||
|
||||
if (atomic_dec_and_test(&ffs->opened)) {
|
||||
if (ffs->no_disconnect) {
|
||||
struct ffs_epfile *epfiles;
|
||||
unsigned long flags;
|
||||
|
||||
ffs->state = FFS_DEACTIVATED;
|
||||
spin_lock_irqsave(&ffs->eps_lock, flags);
|
||||
epfiles = ffs->epfiles;
|
||||
|
|
@ -2176,7 +2175,6 @@ static void ffs_data_closed(struct ffs_data *ffs)
|
|||
ffs_data_reset(ffs);
|
||||
}
|
||||
}
|
||||
ffs_data_put(ffs);
|
||||
}
|
||||
|
||||
static struct ffs_data *ffs_data_new(const char *dev_name)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user