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

Commit 094f2825 authored by Matthias Kaehlcke's avatar Matthias Kaehlcke Committed by J. Bruce Fields
Browse files

fs/locks.c: use list_for_each_entry() instead of list_for_each()



fs/locks.c: use list_for_each_entry() instead of list_for_each() in
posix_locks_deadlock() and get_locks_status()

Signed-off-by: default avatarMatthias Kaehlcke <matthias.kaehlcke@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent dfad9441
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -700,13 +700,12 @@ EXPORT_SYMBOL(posix_test_lock);
static int posix_locks_deadlock(struct file_lock *caller_fl,
				struct file_lock *block_fl)
{
	struct list_head *tmp;
	struct file_lock *fl;

next_task:
	if (posix_same_owner(caller_fl, block_fl))
		return 1;
	list_for_each(tmp, &blocked_list) {
		struct file_lock *fl = list_entry(tmp, struct file_lock, fl_link);
	list_for_each_entry(fl, &blocked_list, fl_link) {
		if (posix_same_owner(fl, block_fl)) {
			fl = fl->fl_next;
			block_fl = fl;
@@ -2164,24 +2163,22 @@ static void move_lock_status(char **p, off_t* pos, off_t offset)

int get_locks_status(char *buffer, char **start, off_t offset, int length)
{
	struct list_head *tmp;
	struct file_lock *fl;
	char *q = buffer;
	off_t pos = 0;
	int i = 0;

	lock_kernel();
	list_for_each(tmp, &file_lock_list) {
		struct list_head *btmp;
		struct file_lock *fl = list_entry(tmp, struct file_lock, fl_link);
	list_for_each_entry(fl, &file_lock_list, fl_link) {
		struct file_lock *bfl;

		lock_get_status(q, fl, ++i, "");
		move_lock_status(&q, &pos, offset);

		if(pos >= offset+length)
			goto done;

		list_for_each(btmp, &fl->fl_block) {
			struct file_lock *bfl = list_entry(btmp,
					struct file_lock, fl_block);
		list_for_each_entry(bfl, &fl->fl_block, fl_block) {
			lock_get_status(q, bfl, i, " ->");
			move_lock_status(&q, &pos, offset);