]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
fs/9p: Don't use O_TRUNC flag in TOPEN and TLOPEN request
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Tue, 5 Feb 2013 05:56:28 +0000 (11:26 +0530)
committerEric Van Hensbergen <ericvh@gmail.com>
Sun, 10 Feb 2013 22:29:47 +0000 (16:29 -0600)
We do the truncate via setattr request, hence don't pass the O_TRUNC flag in
open request. Without this patch we end up sending zero sized write request
to server when we try to truncate. Some servers (VirtFS) were not handling that
properly.

Reported-by: M. Mohan Kumar <mohan@in.ibm.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
fs/9p/vfs_file.c
fs/9p/vfs_inode.c
fs/9p/vfs_inode_dotl.c

index c2483e97beee9f3e7f00cdf7b0a8f4ad1c86f27f..7a3399767570b9077f08a39eeb57c36071bea8d4 100644 (file)
@@ -80,10 +80,6 @@ int v9fs_file_open(struct inode *inode, struct file *file)
                        p9_client_clunk(fid);
                        return err;
                }
-               if (file->f_flags & O_TRUNC) {
-                       i_size_write(inode, 0);
-                       inode->i_blocks = 0;
-               }
                if ((file->f_flags & O_APPEND) &&
                        (!v9fs_proto_dotu(v9ses) && !v9fs_proto_dotl(v9ses)))
                        generic_file_llseek(file, 0, SEEK_END);
index 890bed538f9b6417aebbb1e5a2780c0f209ebd17..57d017ac68e4f563b51141f1e223769f5497ca5d 100644 (file)
@@ -192,9 +192,6 @@ int v9fs_uflags2omode(int uflags, int extended)
                break;
        }
 
-       if (uflags & O_TRUNC)
-               ret |= P9_OTRUNC;
-
        if (extended) {
                if (uflags & O_EXCL)
                        ret |= P9_OEXCL;
index 40895546e103e3e9b35e9542e23ac929d74de348..edd41d918e6cf67d08b09271662db109f62e6c38 100644 (file)
@@ -186,7 +186,6 @@ static int v9fs_mapped_dotl_flags(int flags)
                { O_CREAT,      P9_DOTL_CREATE },
                { O_EXCL,       P9_DOTL_EXCL },
                { O_NOCTTY,     P9_DOTL_NOCTTY },
-               { O_TRUNC,      P9_DOTL_TRUNC },
                { O_APPEND,     P9_DOTL_APPEND },
                { O_NONBLOCK,   P9_DOTL_NONBLOCK },
                { O_DSYNC,      P9_DOTL_DSYNC },