On Sat, Oct 11, 2008 at 12:01 AM, Theodore Tso <tytso@xxxxxxx> wrote: > On Tue, Oct 07, 2008 at 11:14:11PM +0530, Manish Katiyar wrote: >> Hi Ted, >> >> I am not sure why we wan't to background the logsave and keep retrying >> opening the fd in case of failures. > > That's one of the main reason why logsave exists; the filesystem > containing /var/log might not be mounted, or the root filesystem may > be mounted read-only, and so the log file can't be written until the > filesystem is remounted r/w or /var is mounted. > >> But there may be situations when we will never be able to succeed >> and thus create unnecessary process. For example invoking it >> >> /home/mkatiyar/sbin> ./logsave /testfile ls > > The main use of logsave was in init.d scripts. So I didn't really > worry about the permissoin denied case. Perhaps logsave should just > fail hard and not even run the command if there is a permission denied > error. That would certainly be simpler... > >> +static void should_background(int err, int *nobackground) { >> + switch (err) { >> + case EPERM: >> + case EACCES: >> + *nobackground = err; >> + break; >> + default : >> + *nobackground = 0; >> + } >> + return ; >> +} > > Why is this its own function? I made it that way so that in future if we want to handle any more error numbers to bail out , we just need to add a case statement. Thanks - Manish > > - Ted > -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html