On 4/11/22 9:42 PM, David Howells wrote: > JeffleXu <jefflexu@xxxxxxxxxxxxxxxxx> wrote: > >>> >>>> + if (fd == 0) >>>> + return -ENOENT; >>> >>> 0 is a valid fd. >> >> Yeah, but IMHO fd 0 is always for stdin? I think the allocated anon_fd >> won't install at fd 0. Please correct me if I'm wrong. > > If someone has closed 0, then you'll get 0 next, I'm pretty sure. Try it and > see. Good catch. > >> In fact I wanna use "fd == 0" as the initial state as struct >> cachefiles_object is allocated with kmem_cache_zalloc(). > > I would suggest presetting it to something like -2 to avoid confusion. Okay, as described in the previous email, I'm going to replace @fd to @object_id. I will define some symbols to make it more readable, something like ``` struct cachefiles_object { ... #ifdef CONFIG_CACHEFILES_ONDEMAND #define CACHEFILES_OBJECT_ID_DEFAULT -2 #define CACHEFILES_OBJECT_ID_DEAD -1 int object_id; #endif ... } ``` Thanks for your time. -- Thanks, Jeffle -- Linux-cachefs mailing list Linux-cachefs@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/linux-cachefs