Commit 4e4f1788 authored by Jeffle Xu's avatar Jeffle Xu Committed by Gao Xiang
Browse files

cachefiles: enable on-demand read mode



Enable on-demand read mode by adding an optional parameter to the "bind"
command.

On-demand mode will be turned on when this parameter is "ondemand", i.e.
"bind ondemand". Otherwise cachefiles will work in the original mode.

Signed-off-by: default avatarJeffle Xu <jefflexu@linux.alibaba.com>
Link: https://lore.kernel.org/r/20220509074028.74954-7-jefflexu@linux.alibaba.com


Acked-by: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarGao Xiang <hsiangkao@linux.alibaba.com>
parent 9032b6e8
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -755,11 +755,6 @@ static int cachefiles_daemon_bind(struct cachefiles_cache *cache, char *args)
	    cache->brun_percent  >= 100)
		return -ERANGE;

	if (*args) {
		pr_err("'bind' command doesn't take an argument\n");
		return -EINVAL;
	}

	if (!cache->rootdirname) {
		pr_err("No cache directory specified\n");
		return -EINVAL;
@@ -771,6 +766,18 @@ static int cachefiles_daemon_bind(struct cachefiles_cache *cache, char *args)
		return -EBUSY;
	}

	if (IS_ENABLED(CONFIG_CACHEFILES_ONDEMAND)) {
		if (!strcmp(args, "ondemand")) {
			set_bit(CACHEFILES_ONDEMAND_MODE, &cache->flags);
		} else if (*args) {
			pr_err("Invalid argument to the 'bind' command\n");
			return -EINVAL;
		}
	} else if (*args) {
		pr_err("'bind' command doesn't take an argument\n");
		return -EINVAL;
	}

	/* Make sure we have copies of the tag string */
	if (!cache->tag) {
		/*