lkml.org 
[lkml]   [2002]   [Mar]   [25]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
FromAxel Kittenberger <>
SubjectRe: Patch, forward release() return values to the close() call
DateMon, 25 Mar 2002 10:50:17 +0100
> This is me talking prior to having coffee, but Chapter 3 of the
> Rubini/Corbet book says:
>
>   The flush operation is invoked when a process closes its copy of a file
>   descriptor for a device; it should execute (and wait for) any outstanding
>   operations on the device. This must not be confused with the fsync
> operation requested by user programs. Currently, flush is used only in the
> network file system (NFS) code. If flush is NULL, it is simply not invoked.
>
> I guess it doesn't specifically say it's not called in midstream, but
> it reads as if flush() is called on /only/ close(). I may test this
> today, just for fun.

Oh thats interesting, indeed, so the function name "flush" is just 
contra-intentional. Oxay I know now how I could have written this driver 
without patching the kernel.....
Still the basic issue/idea is remaining. release() is defined as int return 
type, but everywhere it's called it's value is discarded. (except internally 
in "intermezzo" whatever that is)

btw: blkdev_put()  has int return type and seems to return correctly the 
return value from release()s for block devices, so I guess it would be the 
right thing for char devs to do also.

The other way I would also see as okay is to state release() can't return 
anything senseful to anybody, bet then declare it as void return instead. But 
as the state is currently it's suboptimal from both views.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:25    [from the cache]
©2003-2008