cachefiles: notify the user daemon when looking up cookie
[linux-2.6-microblaze.git] / fs / cachefiles / namei.c
index ca9f3e4..facf2eb 100644 (file)
@@ -452,10 +452,9 @@ struct file *cachefiles_create_tmpfile(struct cachefiles_object *object)
        struct dentry *fan = volume->fanout[(u8)object->cookie->key_hash];
        struct file *file;
        struct path path;
-       uint64_t ni_size = object->cookie->object_size;
+       uint64_t ni_size;
        long ret;
 
-       ni_size = round_up(ni_size, CACHEFILES_DIO_BLOCK_SIZE);
 
        cachefiles_begin_secure(cache, &saved_cred);
 
@@ -481,6 +480,15 @@ struct file *cachefiles_create_tmpfile(struct cachefiles_object *object)
                goto out_dput;
        }
 
+       ret = cachefiles_ondemand_init_object(object);
+       if (ret < 0) {
+               file = ERR_PTR(ret);
+               goto out_unuse;
+       }
+
+       ni_size = object->cookie->object_size;
+       ni_size = round_up(ni_size, CACHEFILES_DIO_BLOCK_SIZE);
+
        if (ni_size > 0) {
                trace_cachefiles_trunc(object, d_backing_inode(path.dentry), 0, ni_size,
                                       cachefiles_trunc_expand_tmpfile);
@@ -586,6 +594,10 @@ static bool cachefiles_open_file(struct cachefiles_object *object,
        }
        _debug("file -> %pd positive", dentry);
 
+       ret = cachefiles_ondemand_init_object(object);
+       if (ret < 0)
+               goto error_fput;
+
        ret = cachefiles_check_auxdata(object, file);
        if (ret < 0)
                goto check_failed;