On Wed 27-02-13 14:43:09, Jeff Mahoney wrote: > The bulk of __dquot_initialize runs under the dqptr_sem which > protects the inode->i_dquot pointers. It doesn't protect the > dereferenced contents, though. Those are protected by the > dq_data_lock, which is missing around the dquot_resv_space call. > > Cc: Jan Kara <jack@xxxxxxxx> > Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx> Thanks! I've merged the patch. Just one small nitpick - git(1) expects diffstat to be separated by three dashes (not two) so I had to fix that up so that it doesn't appear in the commit message. Not sure how that happened in your submission but I wanted to point that out just in case it was some systematic error... Honza > -- > > fs/quota/dquot.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > --- a/fs/quota/dquot.c > +++ b/fs/quota/dquot.c > @@ -1439,8 +1439,11 @@ static void __dquot_initialize(struct in > * did a write before quota was turned on > */ > rsv = inode_get_rsv_space(inode); > - if (unlikely(rsv)) > + if (unlikely(rsv)) { > + spin_lock(&dq_data_lock); > dquot_resv_space(inode->i_dquot[cnt], rsv); > + spin_unlock(&dq_data_lock); > + } > } > } > out_err: > > -- > Jeff Mahoney > SUSE Labs > -- > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html