RE: [HPDD-discuss] [PATCH] staging: lustre: fix sparse warnings related to lock context imbalance

From: Patrick Farrell
Date: Fri Nov 28 2014 - 11:02:00 EST


Dan,

I disagree about the change suggested here. In this particular code, 'object_attr' is distinct from 'attr', as in a 'setattr' call on an inode. 'cl_object' is a distinct thing from an inode/file on disk, and specifying it is the objects attr is helpful in understanding there is not a direct relationship to 'attr' in the general filesystem sense. (cl_object attrs are used in determining actual on disk attributes, but there is not a one-to-one correspondence.)

I am willing to be corrected, but that is my first feeling here.

- Patrick
________________________________________
From: HPDD-discuss [hpdd-discuss-bounces@xxxxxxxxxxxx] on behalf of Dan Carpenter [dan.carpenter@xxxxxxxxxx]
Sent: Friday, November 28, 2014 4:00 AM
To: Loïc Pefferkorn
Cc: devel@xxxxxxxxxxxxxxxxxxxx; Greg KH; linux-kernel@xxxxxxxxxxxxxxx; gdonald@xxxxxxxxx; HPDD-discuss@xxxxxxxxxxx
Subject: Re: [HPDD-discuss] [PATCH] staging: lustre: fix sparse warnings related to lock context imbalance

On Thu, Nov 27, 2014 at 07:34:10PM +0100, Loïc Pefferkorn wrote:
> 1827 if (valid != 0) {
> 1828 cl_object_attr_lock(obj);
> 1829 cl_object_attr_set(env, obj, attr, valid);
> 1830 cl_object_attr_unlock(obj);
>
> after:
>
> 1827 if (valid != 0) {
> 1828 spin_lock(cl_object_attr_guard(obj));
> 1829 cl_object_attr_set(env, obj, attr, valid);
> 1830 spin_unlock(cl_object_attr_guard(obj));

The word "_object" doesn't add any new information to the name. If you
remove it then the code is improved.

spin_lock(cl_attr_guard(obj));
cl_attr_set(env, obj, attr, valid);
spin_unlock(cl_attr_guard(obj));


regards,
dan carpenter

_______________________________________________
HPDD-discuss mailing list
HPDD-discuss@xxxxxxxxxxxx
https://lists.01.org/mailman/listinfo/hpdd-discuss
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/