Patent ID: 8510597

Claim:
A method comprising: executing an operating system with a computing device to provide an operating environment for execution of a software application; receiving a request from the software application with the operating system, wherein the request specifies an operation to be performed by the operating system with respect to one of the plurality of files managed by a file system of the operating system; executing, with the computing device, one or more kernel functions of the operating system and one or more file system functions provided by program code of the file system to perform the operation, wherein the kernel functions call the file system functions to perform the operation, and wherein the file system functions also call the kernel functions to perform the operation; maintaining a stack with the computing device that stores data identifying those of the kernel functions that called the file system functions but not those of the file system functions that called the kernel functions; in response to determining that a first one of the file system functions that was called has failed, accessing the stack with the computing device to identify a first one of the kernel functions that most recently called a first one of the file system functions; returning control of execution to the identified first one of the kernel functions that most recently called the first one of the file system functions without executing any of the file system functions called after the first one of the kernel functions that most recently called the first one of the file system functions but before the first one of the file system functions that failed; detecting attempted execution of a second one of the file system functions after returning control of execution to the identified first one of the kernel functions; in response to detecting the attempted execution of the second one of the file system functions, accessing the stack to identify a second one of the kernel functions that most recently called the second one of the file system functions for which execution was attempted; and returning control of execution to the identified second one of the kernel functions without executing the second one of the file system functions.