Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ad76cbc6 authored by Alexey Dobriyan's avatar Alexey Dobriyan Committed by Al Viro
Browse files

[PATCH 2/2] anondev: switch to IDA

parent 6de24f0e
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -682,7 +682,7 @@ void emergency_remount(void)
 * filesystems which don't use real block-devices.  -- jrs
 */

static DEFINE_IDR(unnamed_dev_idr);
static DEFINE_IDA(unnamed_dev_ida);
static DEFINE_SPINLOCK(unnamed_dev_lock);/* protects the above */

int set_anon_super(struct super_block *s, void *data)
@@ -691,10 +691,10 @@ int set_anon_super(struct super_block *s, void *data)
	int error;

 retry:
	if (idr_pre_get(&unnamed_dev_idr, GFP_ATOMIC) == 0)
	if (ida_pre_get(&unnamed_dev_ida, GFP_ATOMIC) == 0)
		return -ENOMEM;
	spin_lock(&unnamed_dev_lock);
	error = idr_get_new(&unnamed_dev_idr, NULL, &dev);
	error = ida_get_new(&unnamed_dev_ida, &dev);
	spin_unlock(&unnamed_dev_lock);
	if (error == -EAGAIN)
		/* We raced and lost with another CPU. */
@@ -704,7 +704,7 @@ int set_anon_super(struct super_block *s, void *data)

	if ((dev & MAX_ID_MASK) == (1 << MINORBITS)) {
		spin_lock(&unnamed_dev_lock);
		idr_remove(&unnamed_dev_idr, dev);
		ida_remove(&unnamed_dev_ida, dev);
		spin_unlock(&unnamed_dev_lock);
		return -EMFILE;
	}
@@ -720,7 +720,7 @@ void kill_anon_super(struct super_block *sb)

	generic_shutdown_super(sb);
	spin_lock(&unnamed_dev_lock);
	idr_remove(&unnamed_dev_idr, slot);
	ida_remove(&unnamed_dev_ida, slot);
	spin_unlock(&unnamed_dev_lock);
}