locks: use list_first_entry_or_null()
authorGeliang Tang <geliangtang@163.com>
Wed, 18 Nov 2015 13:40:33 +0000 (21:40 +0800)
committerJeff Layton <jeff.layton@primarydata.com>
Wed, 18 Nov 2015 14:21:49 +0000 (09:21 -0500)
Simplify the code with list_first_entry_or_null().

Signed-off-by: Geliang Tang <geliangtang@163.com>
Signed-off-by: Jeff Layton <jeff.layton@primarydata.com>
fs/locks.c

index 86c9467..d2ee8e3 100644 (file)
@@ -1505,12 +1505,10 @@ void lease_get_mtime(struct inode *inode, struct timespec *time)
        ctx = smp_load_acquire(&inode->i_flctx);
        if (ctx && !list_empty_careful(&ctx->flc_lease)) {
                spin_lock(&ctx->flc_lock);
        ctx = smp_load_acquire(&inode->i_flctx);
        if (ctx && !list_empty_careful(&ctx->flc_lease)) {
                spin_lock(&ctx->flc_lock);
-               if (!list_empty(&ctx->flc_lease)) {
-                       fl = list_first_entry(&ctx->flc_lease,
-                                               struct file_lock, fl_list);
-                       if (fl->fl_type == F_WRLCK)
-                               has_lease = true;
-               }
+               fl = list_first_entry_or_null(&ctx->flc_lease,
+                                             struct file_lock, fl_list);
+               if (fl && (fl->fl_type == F_WRLCK))
+                       has_lease = true;
                spin_unlock(&ctx->flc_lock);
        }
 
                spin_unlock(&ctx->flc_lock);
        }