Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=17973f5af741f1758ed57c5115ca394c22bee159
Commit:     17973f5af741f1758ed57c5115ca394c22bee159
Parent:     1e3e8d91fee56e1ab598b265466dc38033f1b915
Author:     Micah Cowan <[EMAIL PROTECTED]>
AuthorDate: Sun Jul 15 23:40:08 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Mon Jul 16 09:05:43 2007 -0700

    Only send SIGXFSZ when exceeding rlimits.
    
    Some users have been having problems with utilities like cp or dd dumping
    core when they try to copy a file that's too large for the destination
    filesystem (typically, > 4gb).  Apparently, some defunct standards required
    SIGXFSZ to be sent in such circumstances, but SUS only requires/allows it
    for when a written file exceeds the process's resource limits.  I'd like to
    limit SIGXFSZs to the bare minimum required by SUS.
    
    Patch sent per http://lkml.org/lkml/2007/4/10/302
    
    Signed-off-by: Micah Cowan <[EMAIL PROTECTED]>
    Acked-by: Alan Cox <[EMAIL PROTECTED]>
    Cc: <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 fs/ncpfs/file.c    |    2 --
 fs/reiserfs/file.c |    1 -
 mm/filemap.c       |    2 --
 3 files changed, 0 insertions(+), 5 deletions(-)

diff --git a/fs/ncpfs/file.c b/fs/ncpfs/file.c
index d3152f8..2b145de 100644
--- a/fs/ncpfs/file.c
+++ b/fs/ncpfs/file.c
@@ -203,7 +203,6 @@ ncp_file_write(struct file *file, const char __user *buf, 
size_t count, loff_t *
 
        if (pos + count > MAX_NON_LFS && !(file->f_flags&O_LARGEFILE)) {
                if (pos >= MAX_NON_LFS) {
-                       send_sig(SIGXFSZ, current, 0);
                        return -EFBIG;
                }
                if (count > MAX_NON_LFS - (u32)pos) {
@@ -212,7 +211,6 @@ ncp_file_write(struct file *file, const char __user *buf, 
size_t count, loff_t *
        }
        if (pos >= inode->i_sb->s_maxbytes) {
                if (count || pos > inode->i_sb->s_maxbytes) {
-                       send_sig(SIGXFSZ, current, 0);
                        return -EFBIG;
                }
        }
diff --git a/fs/reiserfs/file.c b/fs/reiserfs/file.c
index 30eebfb..2070aee 100644
--- a/fs/reiserfs/file.c
+++ b/fs/reiserfs/file.c
@@ -1305,7 +1305,6 @@ static ssize_t reiserfs_file_write(struct file *file,     
/* the file we are going t
        if (get_inode_item_key_version (inode) == KEY_FORMAT_3_5 &&
            *ppos + count > MAX_NON_LFS) {
                if (*ppos >= MAX_NON_LFS) {
-                       send_sig(SIGXFSZ, current, 0);
                        return -EFBIG;
                }
                if (count > MAX_NON_LFS - (unsigned long)*ppos)
diff --git a/mm/filemap.c b/mm/filemap.c
index adbac10..100b99c 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -1967,7 +1967,6 @@ inline int generic_write_checks(struct file *file, loff_t 
*pos, size_t *count, i
        if (unlikely(*pos + *count > MAX_NON_LFS &&
                                !(file->f_flags & O_LARGEFILE))) {
                if (*pos >= MAX_NON_LFS) {
-                       send_sig(SIGXFSZ, current, 0);
                        return -EFBIG;
                }
                if (*count > MAX_NON_LFS - (unsigned long)*pos) {
@@ -1985,7 +1984,6 @@ inline int generic_write_checks(struct file *file, loff_t 
*pos, size_t *count, i
        if (likely(!isblk)) {
                if (unlikely(*pos >= inode->i_sb->s_maxbytes)) {
                        if (*count || *pos > inode->i_sb->s_maxbytes) {
-                               send_sig(SIGXFSZ, current, 0);
                                return -EFBIG;
                        }
                        /* zero-length writes at ->s_maxbytes are OK */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to