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

Commit 7c657f2f authored by John McCutchan's avatar John McCutchan Committed by Linus Torvalds
Browse files

[PATCH] Document idr_get_new_above() semantics, update inotify



There is an off by one problem with idr_get_new_above.

The comment and function name suggest that it will return an id >
starting_id, but it actually returned an id >= starting_id, and kernel
callers other than inotify treated it as such.

The patch below fixes the comment, and fixes inotifys usage.  The
function name still doesn't match the behaviour, but it never did.

Signed-off-by: default avatarJohn McCutchan <ttb@tentacle.dhs.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 755528c8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -353,7 +353,7 @@ static int inotify_dev_get_wd(struct inotify_device *dev,
	do {
		if (unlikely(!idr_pre_get(&dev->idr, GFP_KERNEL)))
			return -ENOSPC;
		ret = idr_get_new_above(&dev->idr, watch, dev->last_wd, &watch->wd);
		ret = idr_get_new_above(&dev->idr, watch, dev->last_wd+1, &watch->wd);
	} while (ret == -EAGAIN);

	return ret;
+1 −1
Original line number Diff line number Diff line
@@ -207,7 +207,7 @@ build_up:
}

/**
 * idr_get_new_above - allocate new idr entry above a start id
 * idr_get_new_above - allocate new idr entry above or equal to a start id
 * @idp: idr handle
 * @ptr: pointer you want associated with the ide
 * @start_id: id to start search at