Jeffle Xu <[email protected]> wrote:
> + read_lock(&cache->reqs_lock);
> +
> + /* recheck dead state under lock */
> + if (test_bit(CACHEFILES_DEAD, &cache->flags)) {
> + read_unlock(&cache->reqs_lock);
> + ret = -EIO;
> + goto out;
> + }
> +
> + xa_lock(xa);
> + ret = __xa_alloc(xa, &id, req, xa_limit_32b, GFP_KERNEL);
You're holding a spinlock. You can't use GFP_KERNEL.
> +static int cachefiles_ondemand_cinit(struct cachefiles_cache *cache, char
> *args)
> +{
> ...
> + tmp = kstrdup(args, GFP_KERNEL);
No need to copy the string. The caller already did that and added a NUL for
good measure.
I would probably move most of the functions added in this patch to
fs/cachefiles/ondemand.c.
David
--
Linux-cachefs mailing list
[email protected]
https://listman.redhat.com/mailman/listinfo/linux-cachefs