diff options
| author | M. Mohan Kumar <mohan@in.ibm.com> | 2013-02-05 14:25:05 +0530 | 
|---|---|---|
| committer | Eric Van Hensbergen <ericvh@gmail.com> | 2013-02-10 16:29:59 -0600 | 
| commit | b6f4bee02f682d1c86ece297871b78ae01afaaf4 (patch) | |
| tree | cebad2fa8b3fbc43a54f115b1f69491d5f8d67a5 /lib/spinlock_debug.c | |
| parent | 03f0e022736d123bc42907a958535f4f10d0c4c3 (diff) | |
fs/9p: Fix atomic_open
Return EEXISTS if requested file already exists, without this patch open
call will always succeed even if the file exists and user specified
O_CREAT|O_EXCL.
Following test code can be used to verify this patch. Without this patch
executing following test code on 9p mount will result in printing 'test case
failed' always.
main()
{
        int fd;
        /* first create the file */
        fd = open("./file", O_CREAT|O_WRONLY);
        if (fd < 0) {
                perror("open");
                return -1;
        }
        close(fd);
        /* Now opening same file with O_CREAT|O_EXCL should fail */
        fd = open("./file", O_CREAT|O_EXCL);
        if (fd < 0 && errno == EEXIST)
	        printf("test case pass\n");
        else
	        printf("test case failed\n");
        close(fd);
        return 0;
}
Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Diffstat (limited to 'lib/spinlock_debug.c')
0 files changed, 0 insertions, 0 deletions
